【发布时间】:2016-10-31 12:53:35
【问题描述】:
我正在学习java gui界面并编写了一个带有按钮的程序。每次单击按钮时,屏幕上都会添加一个随机大小的矩形。但是程序没有将它添加到屏幕上,而是不断擦除旧的,我想保留在屏幕上。这是我的代码。我试图做paint(),但它没有用。提前致谢。
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class SimpleGui implements ActionListener {
JFrame frame = new JFrame();
public static void main(String[] args){
SimpleGui gui = new SimpleGui();
gui.go();
}
public void go(){
JButton button = new JButton("Add a rectangle");
MyDrawPanel panel = new MyDrawPanel();
button.addActionListener(this);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(BorderLayout.SOUTH, button);
frame.getContentPane().add(BorderLayout.CENTER, panel);
frame.setSize(300, 300);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent event){
frame.repaint();
}
class MyDrawPanel extends JPanel{
public void paintComponent(Graphics g){
g.setColor(Color.blue);
int height = (int) (Math.random()*120 + 10);
int width = (int) (Math.random()*120 + 10);
int x = (int) (Math.random()*40 + 10);
int y = (int) (Math.random()*40 + 10);
g.fillRect(x, y, height, width);
}
}
}
【问题讨论】:
-
请参阅Custom Painting Approaches,了解下面建议的两种方法的工作示例和优缺点
标签: java swing user-interface jpanel paintcomponent