Java 父面板未涂漆

Java 父面板未涂漆,java,swing,jpanel,transparency,paintcomponent,Java,Swing,Jpanel,Transparency,Paintcomponent,我有以下Java Swing问题:父面板没有被绘制,即当它被另一个具有透明背景的面板覆盖时,甚至没有调用paintComponent 如果子面板不是透明的,我想这种行为是正常的,但在这里这是一个问题,因为父面板提供了一个图片作为背景 可能不相关,但您永远不知道:子面板是JFreeChart的库扩展JPanel中的ChartPanel,而父面板也是JPanel扩展,因此paintComponent代码: @Override public void paintComponent(Graphics

我有以下Java Swing问题:父面板没有被绘制,即当它被另一个具有透明背景的面板覆盖时,甚至没有调用paintComponent

如果子面板不是透明的,我想这种行为是正常的,但在这里这是一个问题,因为父面板提供了一个图片作为背景

可能不相关,但您永远不知道:子面板是JFreeChart的库扩展JPanel中的ChartPanel,而父面板也是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()); 
    }       

}
任何帮助/提示都将不胜感激,因为我已经研究了几个小时了

谢谢

父面板不会被绘制,即当它被另一个具有透明背景的面板覆盖时,甚至不会调用paintComponent

不确定如何设置ChartPanel的透明背景。我认为您只需要使用:

childPanel.setOpaque(false);
如果这不起作用,请查看有关如何在子组件/父组件之间进行绘制的详细信息

父面板不会被绘制,即当它被另一个具有透明背景的面板覆盖时,甚至不会调用paintComponent

不确定如何设置ChartPanel的透明背景。我认为您只需要使用:

childPanel.setOpaque(false);

如果这不起作用,请查看更多关于如何在子/父组件之间进行绘画的信息。

< P>作为替代,考虑Or.jFr.Chan.jFrice的方法,该方法还具有控制对齐和alpha的方法。

< P>作为替代,考虑Or.jFr.Chan.jFrutCar的方法,它也有控制对齐和alpha的方法。

谢谢-这很有效,我使用的JPanel.setBackground的alpha值为0。谢谢-这很有效,我使用的JPanel.setBackground的alpha值为0。