我有以下 Java Swing 问题:当父面板被另一个具有透明背景的面板覆盖时,它不会被绘制(即,paintComponent() 甚至没有被调用)。
我想如果子面板不透明,这种行为是正常的,但这是一个问题,因为父面板提供了一张图片作为背景。
可能不相关但你永远不知道:子面板是 JFreeChart 库中的 ChartPanel(扩展 JPanel),父面板也是 JPanel 扩展,特此 paintComponent 代码:
@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());
}
}
任何帮助/提示将不胜感激,因为我已经研究了几个小时。
谢谢!