ホームページ >Java >&#&チュートリアル >JOptionPane で画像をキャプチャすると JTable ヘッダーが消えるのはなぜですか?

JOptionPane で画像をキャプチャすると JTable ヘッダーが消えるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-06 13:34:02308ブラウズ

Why does the JTable header disappear when capturing an image in a JOptionPane?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。