我想根据选中的单选按钮更改框架的背景。这必须使用AWT来完成。当前代码只是将颜色更改为蓝色。单击绿色时,不会发生任何更改。
import java.awt.*;
import java.awt.event.*;
class A extends Frame implements ItemListener
{
Checkbox c1,c2;
CheckboxGroup cbg;
A()
{
setLayout(new FlowLayout());
cbg= new CheckboxGroup();
c1= new Checkbox("Blue",cbg,false);
c2= new Checkbox("Green",cbg,true);
this.add(c1);
this.add(c2);
c1.addItemListener(this);
c2.addItemListener(this);
}
public void itemStateChanged(ItemEvent e)
{
if(e.getStateChange()==ItemEvent.SELECTED)
this.setBackground(Color.BLUE);
else if(e.getStateChange()==ItemEvent.SELECTED)
this.setBackground(Color.Green);
else
this.setBackground(Color.BLACK);
}
public static void main(String[] args)
{
A a= new A();
a.setSize(500,500);
a.setTitle("ME");
a.setVisible(true);
a.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we){System.exit(0);}
});
}
}发布于 2016-11-13 21:50:46
潜在的问题(除了编译错误之外)是if和else if的条件是相同的。检查事件的来源并将其与c1或c2进行比较可能会更好。
请注意,如果应该有一个“黑色”选项,则需要有第三个复选框。
https://stackoverflow.com/questions/40573886
复制相似问题