输入代码:
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class CircleP extends JFrame
{
private JButton Enlage=new JButton("Enlage");
private JButton Shrink=new JButton("Shrink");
private Circle2 canvas=new Circle2();
public CircleP()
{
JPanel panel=new JPanel();
panel.add(Enlage);
panel.add(Shrink);
this.add(canvas,BorderLayout.CENTER);
this.add(panel,BorderLayout.SOUTH);
Enlage.addActionListener(new EnlargeListener());
}
public static void main(String[] args)
{
JFrame frame=new CircleP();
frame.setTitle("圆形编辑器");
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500,500);
frame.setVisible(true);
}
class Circle2 extends JPanel
{
private int radius=5;
public void enlarge()
{
radius++;
repaint();
}
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawOval(getWidth()/2-radius,getHeight()/2-radius,2*radius,2*radius);
}
}
class EnlargeListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
canvas.enlarge();
}
}
}
运行结果:
总结:好久不写事件监听器类的代码了,有些生疏了。