ホームページ >Java >&#&チュートリアル >JOptionPane で画像をキャプチャすると JTable ヘッダーが消えるのはなぜですか?
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 中国語 Web サイトの他の関連記事を参照してください。