我想根据所选的单选按钮更改框架的背景。这必须使用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);}
});
}
}
答案 0 :(得分:1)
基础问题(除编译错误外)是if
和else if
的条件相同。最好检查事件来源并将其与c1
或c2
进行比较。
请注意,如果应该有黑色'选项,需要第三个复选框。