次の Java Swing の問題があります。透明な背景を持つ別のパネルで親パネルが覆われている場合、親パネルがペイントされません (つまり、paintComponent() が呼び出されません)。
子パネルが透明でない場合、この動作は正常だと思いますが、親パネルが背景として画像を提供するため、ここでは問題です。
おそらく関係ありませんが、わかりません: 子パネルは JFreeChart のライブラリ (JPanel を拡張) の ChartPanel であり、親パネルも JPanel 拡張です。
@Override
public void paintComponent(Graphics g) {
try {
long start = System.currentTimeMillis();
//Sets waiting cursor
GuiHelper.setCursorOnEntireWindow(Cursor.WAIT_CURSOR);
//Paints parent
super.paintComponent(g);
//Paints background and other elements
g.drawImage(generateBackground(getWidth(), getHeight()), 0, 0, getWidth(), getHeight(), this);
long end = System.currentTimeMillis();
System.out.println("Chart paint took: "+(end-start)+"ms");
}
finally {
//Removes waiting cursor
GuiHelper.setCursorOnEntireWindow(Cursor.getDefaultCursor().getType());
}
}
私は何時間も調べていたので、どんな助け/ヒントも大歓迎です。
ありがとう!