setBackground是未修饰的JFrame

时间:2015-03-30 13:42:40

标签: java swing jframe cardlayout

好的..我正在重写这个问题..

我发现setUndecorated()不是问题所在。

问题是setBackground(new Color(0, 0, 0, 0)

经过一些尝试后,CardLayout显示了正确的结果

当背景的alpha通道为1(完全不透明)时。

否则它显示错误的结果。

public SmartPhone() {
    super("SmartPhone");

    setUndecorated(true); 
    setBackground(new Color(1f, 1f, 1f, .5f));

    setSize(FRAME_WIDTH, FRAME_HEIGHT);
    init(); start();

    device = this;
}

这是我的构造函数。 init()是创建布局的方法,start()是添加MouseAdapter的方法。

我的setBackground()是否有任何问题?

2 个答案:

答案 0 :(得分:3)

CardLayout中切换组件时,请使用CardLayout.show()方法,不要直接使用setVisible()。像这样:

CardLayout cardLayout = new CardLayout();
JPanel cardPanel = new JPanel(cardLayout);
String oneStr = "One";
String twoStr = "Two";
JLabel oneLabel = new JLabel(oneStr);
JLabel twoLabel = new JLabel(twoStr);
cardPanel.add(oneLabel, oneStr);
cardPanel.add(twoLabel, twoStr);

cardLayout.show(cardPanel, oneStr);//sets "One" visible
cardLayout.show(cardPanel, twoStr);//sets "Two" visible

见这里:http://docs.oracle.com/javase/tutorial/uiswing/layout/card.html

答案 1 :(得分:-1)

嗯......解决了......?

我不知道我做了什么,但在做了一些其他项目之后,

组件打印得很好..!