2

问题:单击按钮时隐藏已添加到透明 JFrame 的 JPanel。

问题:JPanel 未正确隐藏,但仍以较深的颜色显示。如果没有启用 alpha 通道,它会隐藏起来。

谢谢你的帮助。

示例代码:

public class TestJFrame extends JFrame {

private JButton mSwitchButton = new JButton("Switch");
private JPanel mPanel = new JPanel();

public static void main(String[] args) {
    new TestJFrame();
}

public TestJFrame() {
    setSize(400, 300);      
    getContentPane().setLayout(new BorderLayout());
    this.setBackground(new Color(50, 50, 50, 50));      
    mPanel.setBackground(Color.RED);
    getContentPane().add(mPanel, BorderLayout.CENTER);
    getContentPane().add(mSwitchButton, BorderLayout.SOUTH);        
    mSwitchButton.addMouseListener( new MouseListener() {           
                    ...

        @Override
        public void mouseClicked(MouseEvent arg0) {
            mPanel.setVisible(false);
        }
                    ...
    });     
    pack();
    setVisible(true);
}
4

1 回答 1

3

较深的颜色与 JFrame 有关——JFrame 本身就是没有被正确隐藏的东西。但是,当您设置时,您的 JPanel 被很好地隐藏了

this.setBackground(new Color(50, 50, 50, 50));

然后删除JPanel,你剩下的是50 alpha值。将其设置为:

this.setBackground(new Color(50, 50, 50, 0));

当我在我的机器上测试它时纠正了这个问题。

于 2012-10-08T21:45:58.273 回答