Heim  >  Artikel  >  Java  >  Warum verschwindet der JTable-Header, wenn ein Bild in einem JOptionPane erfasst wird?

Warum verschwindet der JTable-Header, wenn ein Bild in einem JOptionPane erfasst wird?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-06 13:34:02229Durchsuche

Why does the JTable header disappear when capturing an image in a JOptionPane?

Warum erscheint der JTable-Header nicht im Bild?

Beim Erfassen eines Bildes von Tabellendaten mit der Java-Swing-Bibliothek kann es sein, dass dies der Fall ist Es kann zu einem Problem kommen, bei dem der Tabellenkopf nicht im resultierenden Bild erscheint. Dies liegt daran, dass, wenn die Tabelle zu einem JScrollPane hinzugefügt und in einem Optionsbereich angezeigt wird, der Tabellenkopf nicht mehr Teil der Baumhierarchie ist, wenn das Bild erfasst wird.

Die Lösung besteht darin, den Tabellenkopf wieder hinzuzufügen in die Hierarchie einfügen, bevor Sie das Bild aufnehmen. Dies kann mit der Methode addNotify() erfolgen, wie unten gezeigt:

JTable table = new JTable();
JScrollPane scroll = new JScrollPane(table);
JPanel p = new JPanel(new BorderLayout());
p.add(scroll, BorderLayout.CENTER);

JOptionPane.showMessageDialog(null, p);
table.addNotify();
p.doLayout();
BufferedImage bi = new BufferedImage(p.getWidth(), p.getHeight(), BufferedImage.TYPE_INT_RGB);

Graphics g = bi.createGraphics();
p.paint(g);
g.dispose();

Indem Sie den Tabellenkopf mit addNotify() wieder zur Hierarchie hinzufügen und ein Layout erstellen, wird der Kopf sichtbar, wenn das Bild angezeigt wird wird erfasst.

Das obige ist der detaillierte Inhalt vonWarum verschwindet der JTable-Header, wenn ein Bild in einem JOptionPane erfasst wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn