java红绿灯.doc
文本预览下载声明
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//画圆的类,由JPanel派生
class PaintovalPane extends JPanel
{
Color color;
PaintovalPane(Color colorOfPanel)
{color=colorOfPanel;}
public void paintComponent(Graphics g)
{
super.paintComponent(g);//调用父类构造方法
g.setColor(color);//设置圆形面板的颜色
g.fillOval(50, 10, 30, 30);//以30为半径作圆形面板
}
}
public class Ex4_2 extends JApplet
{
public void init()
{
//定义三个单选按钮
JRadioButton Red=new JRadioButton(Red);
JRadioButton Yellow=new JRadioButton(yellow);
JRadioButton Green=new JRadioButton(Green);
//定义三个圆形面板,并初始化颜色为白色
final PaintovalPane oval1=new PaintovalPane(Color.white);
final PaintovalPane oval2=new PaintovalPane(Color.white);
final PaintovalPane oval3=new PaintovalPane(Color.white);
//定义三个标签
JLabel messagePanel1=new JLabel(Red);
JLabel messagePanel2=new JLabel(Yellow);
JLabel messagePanel3=new JLabel(Green);
JPanel ovalgroup=new JPanel();
//定义一个面板ovalgroup,并设置其布局为3*2,添加三个圆形面板组件与三个标签组件
ovalgroup.setLayout(new GridLayout(3,2));
ovalgroup.add(oval1);
ovalgroup.add(messagePanel1);
ovalgroup.add(oval2);
ovalgroup.add(messagePanel2);
ovalgroup.add(oval3);
ovalgroup.add(messagePanel3);
//定义一个面板buttonPanel,布局为1*3,添加三个单选按钮组件
JPanel buttonPanel=new JPanel();
buttonPanel.setLayout(new GridLayout(1,3));
buttonPanel.add(Red);
buttonPanel.add(Yellow);
buttonPanel.add(Green);
//将三个单选按钮添加到按钮组group中,实现三个按钮互斥
ButtonGroup group=new ButtonGroup();
group.add(Green);
group.add(Red);
group.add(Yellow);
//设置框架的布局2*1,并添加上述两个面板
setLayout(new GridLayout(2,1));
add(ovalgroup);
add(buttonPanel);
//为三个圆形面板添加Action监听器
Red.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
oval1.color=Color.RED;
oval2.color=Color.white;
oval3.color=Color.white;
repaint();
}
});
Yellow.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
oval2.color=Color.yell
显示全部