首感:本来没按照课本上做,以为能做出来,但是费了好几天都没做出来,还是知识储备太少了,所以又乖乖看课本。
首先是画布类:
import java.awt.*;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
class Mycanvas extends Canvas{
int x,y,r;
Color c2;
Mycanvas()
{
setBackground(Color.white);
}
public void get(int x)
{
this.x = x;
}
public void get2(int y)
{
this.y = y;
}
public void get3(int r)
{
this.r = r;
}
public void paint(Graphics g)
{
g.setColor(c2);
g.fillOval(x, y,2*r,2*r);
}
public void update(Graphics g)
{
g.clearRect(x, y,2*r,2*r);
paint(g);
}
}
然后是主类:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Wancheng extends JFrame implements ItemListener{
Mycanvas w;
JComboBox c;
Wancheng()
{
w = new Mycanvas();
Panel p1 = new Panel();
c = new JComboBox();
c.addItem("默认信号");
c.addItem("红灯");
c.addItem("黄灯");
c.addItem("绿灯");
p1.add(c);
add(w,BorderLayout.CENTER);
add(p1,BorderLayout.NORTH);
c.addItemListener(this);
setBounds(350,350,550,550);
setVisible(true);
validate();
}
@Override
public void itemStateChanged(ItemEvent arg0) {
// TODO Auto-generated method stub
int d = c.getSelectedIndex();
if (d == 0)
{
w.get(100);
w.get2(100);
w.get3(100);
}
if (d == 1)
{
w.get(100);
w.get2(100);
w.get3(100);
w.c2 = Color.red;
w.repaint();
}
if (d == 2)
{
w.get(100);
w.get2(100);
w.get3(100);
w.c2 = Color.yellow;
w.repaint();
}
if (d == 3)
{
w.get(100);
w.get2(100);
w.get3(100);
w.c2 = Color.green;
w.repaint();
}
}
}
最后是测试类;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new Wancheng();
}
}