我试图用Java编写的Swing程序输出充满随机量的色彩几何矩形的10×10格。但是,当用户单击显示窗口中的其中一个矩形时,该矩形应重绘()并更改为其他颜色。的MouseListener帮助Java
到目前为止我有基本的程序运行,但我无法弄清楚如何实现的MouseListener它才能有矩形的颜色变化,当用户点击里面。此时,矩形只在显示窗口展开并最小化时才重新绘制。任何意见/帮助将不胜感激!谢谢!
这里是我迄今为止...
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.geom.*;
public class ColorGrid extends JPanel {
int w, x, y, z;
Color c = new Color((int)(Math.random() * 0xFFFFFF));
public void paint(Graphics g){
Graphics2D g2 = (Graphics2D) g;
setLayout(new GridLayout(10,10));
int w = x = y = z = 0;
for(int i=0;i<100;i++){
Color c = new Color((int)(Math.random() * 0xFFFFFF));
w+=10;
x+=10;
y+=50;
z+=15;
g2.drawRect(w+10,x+30,y,z);
g2.drawRect(w+10,x+30,y,z);
g2.fillRect(w+10,x+30,y,z);
g2.setPaint(c);
}
}
public static void main(String[] args) {
JFrame f= new JFrame();
f.setTitle("ColorGrid Display Window");
f.setSize(200,200);
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
Container contentPane = f.getContentPane();
contentPane.add(new ColorGrid());
f.show();
}
}
这个例子给了我一个很好的帮助,让我更好地了解如何做到这一点,然而,当执行这段代码时,这个代码提供了一个10x10的随机彩色方格网格。我如何编辑它以显示矩形? – astroDude1 2011-02-28 02:28:41
尝试更改标签的首选尺寸。 – trashgod 2011-02-28 03:04:53