语言:java
目录结构:
代码:
- CirclePanel
import java.awt.Graphics;
import javax.swing.JPanel;
public class CirclePanel extends JPanel{
//定义属性----r
private int r=20;
public int getR() {
return r;
}
public void setR(int r) {
this.r=r;
}
//设计
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
int x=getWidth()/2-r;
int y=getHeight()/2-r;
g.drawOval(x,y,2*r,2*r);
}
//放大
public void big(){
r=r+5;
repaint();
}
//缩小
public void small(){
r=r-5;
repaint();
}
}
- CirleEvent
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
public class CirleEvent extends JFrame{
//属性
CirclePanel p1 = new CirclePanel();
//设计窗体 构造方法
public CirleEvent() {
JPanel p = new JPanel();
p.setLayout(new BorderLayout());
JPanel p2 = new JPanel();
p2.setLayout(new FlowLayout());
JButton bt1=new JButton("放大");
ActionListener x = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
p1.big();
}
};
bt1.addActionListener(x);
JButton bt2=new JButton("缩小");
ActionListener y = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
p1.small();
}
};
bt2.addActionListener(y);
p2.add(bt1);
p2.add(bt2);
p.add(p1,BorderLayout.CENTER);//可省略位置
p.add(p2,BorderLayout.SOUTH);
this.add(p);
}
//创建窗体 主方法
public static void main(String[] args) {
JFrame frame = new CirleEvent();
frame.setSize(400,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
结果:
问题:
会溢出界面