問題:
捕捉JTable 的影像時,表頭不會出現在結果影像中。
原因:
當面板繪製到圖像上時,JTable 標題不是層次結構的一部分,因為它已經當 JOptionPane 關閉時被刪除。
kleopatra 的解決方案:
camickr 的解:
更新程式碼:
... // 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(); ...
結論:
兩種解都可以有效地在結果影像中呈現JTable 標頭。 kleopatra 的解決方案利用核心 J2SE,而 camickr 的解決方案則利用 ScreenImage API 來實現附加功能。選擇取決於應用程式的特定要求。
以上是如何捕捉渲染的 JTable 影像中的表頭?的詳細內容。更多資訊請關注PHP中文網其他相關文章!