📄 jpaneldemo.java
字号:
//JPanelDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JPanelDemo
extends JFrame {
private JPanel buttonPanel;
private CustomPanel myPanel;
private JButton circleButton, squareButton;
public JPanelDemo() {
super("JPanel Test");
myPanel = new CustomPanel();
myPanel.setBackground(Color.red);
squareButton = new JButton("正方形");
squareButton.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent event) {
myPanel.draw();
myPanel.addSquare();
}
}
);
circleButton = new JButton(" 圆 ");
circleButton.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent event) {
myPanel.draw();
myPanel.addCircle();
}
}
);
buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(1, 2));
buttonPanel.add(circleButton);
buttonPanel.add(squareButton);
Container container = getContentPane();
JScrollPane scrollPane = new JScrollPane(myPanel);
scrollPane.setHorizontalScrollBarPolicy(
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
container.add(scrollPane, BorderLayout.CENTER);
container.add(buttonPanel, BorderLayout.SOUTH);
pack();
setVisible(true);
}
public Dimension getPreferredSize(){
return new Dimension(500,220);
}
public static void main(String args[]) {
JPanelDemo application = new JPanelDemo();
application.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE);
}
}
class CustomPanel
extends JPanel {
private int circleNumber=1; //当前圆的个数
private int squareNumber=1; //当前正方形的个数
private int shape;
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.blue);
for(int i=0; i < circleNumber; i++)
g.fillOval(55*i, 100, 50, 50); //画一序列填充圆
for(int i=0; i < squareNumber; i++)
g.fillRect(55*i, 0, 50, 50);//画一序列填充正方形
}
public void addCircle(){
circleNumber++;
}
public void addSquare(){
squareNumber++;
}
public void draw() {
repaint(); //该方法会自动调用paintComponent()方法
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -