我試圖用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