关于Java核心编程中的一个例子----设置JPanel的背景色
原例是这样的:在一个JPanel放三个按钮,按下以后分别使背景色变为红色、蓝色和黄色。
我想给例子再加个按钮,按下后使背景色变为原来的颜色(好像就是灰色);可是按下总是不起作用。代码如下(仅JPanel类):
class MyPanel extends JPanel implements ActionListener
{
private JButton yellowbtn;
private JButton bluebtn;
private JButton redbtn;
private JButton restorebtn;
public MyPanel()
{
yellowbtn = new JButton("Yellow");
bluebtn = new JButton("Blue");
redbtn = new JButton("Red");
restorebtn = new JButton("Restore");
add(yellowbtn);
add(bluebtn);
add(redbtn);
add(restorebtn);
yellowbtn.addActionListener(this);
bluebtn.addActionListener(this);
redbtn.addActionListener(this);
restorebtn.addActionListener(this);
}
public void actionPerformed(ActionEvent evt)
{
Object evtSource = evt.getSource();
Color originalcolor = getBackground();
Color color = getBackground();
if ( evtSource == yellowbtn ) color = Color.yellow;
else if ( evtSource == bluebtn ) color = Color.blue;
else if ( evtSource == redbtn ) color = Color.red;
else if ( evtSource == restorebtn ) color = originalcolor;
setBackground(color);
repaint();
}
}