問題:
JTable のイメージをキャプチャすると、テーブル ヘッダーが結果のイメージには表示されません。
原因:
パネルがイメージに描画される時点では、JTable ヘッダーは階層の一部ではありません。 JOptionPane が閉じられたときに削除されました。
kleopatra の解決策:
camiccr の解決策:
更新されたコード:
... // Without having been shown, fake a all-ready p.addNotify(); // Manually size to preferred p.setSize(p.getPreferredSize()); // Validate to force recursive doLayout of children p.validate(); BufferedImage bi = new BufferedImage(p.getWidth(), p.getHeight(), BufferedImage.TYPE_INT_RGB); Graphics g = bi.createGraphics(); p.paint(g); g.dispose(); ...
結論:
どちらのソリューションも、結果として得られるイメージに JTable ヘッダーを効果的にレンダリングします。 kleopatra のソリューションはコア J2SE を利用していますが、camiccr のソリューションは追加機能のために ScreenImage API を利用しています。選択はアプリケーションの特定の要件によって異なります。
以上がレンダリングされた JTable イメージのテーブル ヘッダーをキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。