Pourquoi l'en-tête JTable n'apparaît-il pas dans l'image ?
Lors de la capture d'une image de données tabulaires à l'aide de la bibliothèque Java Swing, il peut y avoir Il peut y avoir un problème lorsque l'en-tête du tableau n'apparaît pas dans l'image résultante. Cela se produit car lorsque le tableau est ajouté à un JScrollPane et affiché dans un volet d'options, l'en-tête du tableau ne fait plus partie de la hiérarchie arborescente lorsque l'image est capturée.
La solution consiste à rajouter l'en-tête du tableau. à la hiérarchie avant de capturer l’image. Cela peut être fait en utilisant la méthode addNotify(), comme indiqué ci-dessous :
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();
En ajoutant l'en-tête du tableau à la hiérarchie à l'aide de addNotify() et en effectuant une mise en page, l'en-tête sera visible lorsque l'image est capturé.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!