
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class J {
public static void main(String[] arg) {
JFrame frame = new JFrame();
J13 component = new J13();
frame.setBounds(0,0,400,300);
frame.add(component);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
//ボタンで切り替える信号機です
class J13 extends JComponent implements ActionListener {
JButton button;
int count;
J13() {
button = new JButton("PUSH");
button.addActionListener(this);
button.setBounds(50,10,100,30);
add(button);
count = 0;
}
public void paintComponent(Graphics g) {
g.setColor(Color.WHITE);
g.fillRect(50,50,260,100);
if(count == 0)
g.setColor(Color.BLUE);
else
g.setColor(Color.GRAY);
g.fillOval(80,70,60,60);
if(count == 1)
g.setColor(Color.YELLOW);
else
g.setColor(Color.GRAY);
g.fillOval(150,70,60,60);
if(count == 2)
g.setColor(Color.RED);
else
g.setColor(Color.GRAY);
g.fillOval(220,70,60,60);
}
public void actionPerformed(ActionEvent e) {
count = (++count) % 3;//% 3 3で割った余りを求める
repaint();//repaint 再描画
}
}
/*
演習問題
信号機の色を、青、黄、赤から、
黄、赤、青の順へ変更してください。
*/