javaの魂100まで-15

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class J {
public static void main(String[] arg) {
JFrame frame = new JFrame();
J15 component = new J15();
frame.setBounds(0,0,400,300);
frame.add(component);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
//ボタンで切り替える信号機です
class J15 extends JComponent implements ActionListener {
JButton button;
int count;
J14light blue, yellow, red;
J15() {
button = new JButton("PUSH");
button.addActionListener(this);
button.setBounds(50,10,100,30);
add(button);
blue = new J14light(Color.BLUE);
blue.setFlg(true);
blue.setBounds(80,70,60,60);
add(blue);
yellow = new J14light(Color.YELLOW);
yellow.setBounds(150,70,60,60);
add(yellow);
red = new J14light(Color.RED);
red.setBounds(220,70,60,60);
add(red);
count = 0;
}
public void paintComponent(Graphics g) {
g.setColor(Color.WHITE);
g.fillRect(50,50,260,100);
}
public void actionPerformed(ActionEvent e) {
count = (++count) % 3;
switch(count) {
case 0:
blue.setFlg(true);
yellow.setFlg(false);
red.setFlg(false);
break;
case 1:
blue.setFlg(false);
yellow.setFlg(true);
red.setFlg(false);
break;
default:
blue.setFlg(false);
yellow.setFlg(false);
red.setFlg(true);
}
repaint();
}
}
/*

演習問題

信号機の色を、左から黄、赤、青の順へ
変更してください。

*/