你好我正在Java中創建一個應用程序(練習),我必須更改我的繪圖類中變量的顏色。當應用程序啓動時,我在顏色變量上運行sysout它說空,但是當我按下我的鼠標右鍵,例如它改變控制器類中的顏色,但不是在我的繪圖類。可以有人看看,告訴我什麼我做錯了?無法更改顏色
這裏是一段代碼
這是繪畫班
private Color color;
private ArrayList<Point> p = new ArrayList<Point>();
public Drawing(Color color) {
this.color = color;
System.out.println("color " + color);
}
public void draw(Graphics g) {
for(int i = 0; i < p.size(); i++) {
g.setColor(color);
g.fillRect(p.get(i).x, p.get(i).y, 10, 10);
}
}
的相關部分,這是我的控制器的相關代碼。
Color color; // kleur vasthouden
Drawing draw; // class definieren
private ArrayList<Drawing> tekening = new ArrayList<Drawing>();
int x, y;
public DrawingPanel() {
setBackground(Color.WHITE); // zorg voor een witte achtergrond.
this.addMouseListener(this); // control de mouselistener
draw = new Drawing(color);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
draw.draw(g);
}
@Override
public void mouseClicked(MouseEvent e) {
if(e.getButton() == MouseEvent.BUTTON1) {
Point k = new Point(e.getX(), e.getY());
draw.addPoint(k);
System.out.println("punt gezet op " + k);
}
if(e.getButton() == MouseEvent.BUTTON3) {
color = new Color(r.nextInt(255 - 0 + 1) + 0, r.nextInt(255 - 0 + 1) + 0, r.nextInt(255 - 0 + 1) + 0);
System.out.println("new color " + color);
}
repaint();
}
我希望有人能找出我在做什麼錯..
我必須設置初始值嗎? (所以不爲空) – Reshad
假設你不想讓初始值爲null,那麼這是個好主意! – Perception