為什麼 JTable 標頭沒有出現在影像中?
使用 Java swing 函式庫擷取表格資料的影像時,可能會出現以下問題:是表格標題未出現在結果影像中的問題。發生這種情況的原因是,當將表格新增至 JScrollPane 並顯示在選項窗格中時,擷取影像時表頭不再是樹層次結構的一部分。
解決方案是將表頭添加回來在捕獲圖像之前訪問層次結構。這可以使用 addNotify() 方法來完成,如下所示:
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();
透過使用 addNotify() 將表頭添加回層次結構並進行佈局,當圖像被捕獲。
以上是為什麼在 JOptionPane 中捕捉影像時 JTable 標頭會消失?的詳細內容。更多資訊請關注PHP中文網其他相關文章!