ランダムスプレッドで満たされた10 x 10グリッドの幾何矩形を出力するJava Swingでプログラムを作成しようとしています。しかし、ユーザが表示ウィンドウ内の矩形の1つをクリックすると、矩形は再描画()され、別の色に変更されます。MouseListener Help Java
これまでのところ、私は初歩的なプログラムを実行していますが、ユーザーが内部をクリックしたときに四角形の色が変わるようにするためにmouseListenerを実装する方法を理解できません。この時点で、長方形は、表示ウィンドウが拡大され最小化されたときにのみ再描画されます。どんなアドバイスや助けも大歓迎です!ありがとう!ここで
は、代わりにあなたがボタンのグリッドを持っているかについて、上の色のグリッドを描くJPanel
を有していると...私がこれまで持っているもの
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
ラベルの推奨サイズを変更してみてください。 – trashgod