为什么 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中文网其他相关文章!