Problem:
Beim Erfassen eines Bildes einer JTable wird der Tabellenkopf erfasst nicht im resultierenden Bild angezeigt.
原因:
Der JTable-Header ist nicht Teil der Hierarchie, wenn das Panel in das Bild gezeichnet wird, wie dies der Fall war wurde entfernt, als das JOptionPane geschlossen wurde.
Kleopatras Lösung:
camickrs Lösung:
Aktualisierter Code:
... // Without having been shown, fake a all-ready p.addNotify(); // Manually size to preferred p.setSize(p.getPreferredSize()); // Validate to force recursive doLayout of children p.validate(); BufferedImage bi = new BufferedImage(p.getWidth(), p.getHeight(), BufferedImage.TYPE_INT_RGB); Graphics g = bi.createGraphics(); p.paint(g); g.dispose(); ...
Fazit:
Beide Lösungen rendern effektiv den JTable-Header im resultierenden Bild. Die Lösung von Kleopatra nutzt den J2SE-Kern, während die Lösung von Camickr die ScreenImage-API für zusätzliche Funktionalität nutzt. Die Wahl hängt von den spezifischen Anforderungen der Anwendung ab.
Das obige ist der detaillierte Inhalt vonWie erfasst man den Tabellenkopf in einem gerenderten JTable-Bild?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!