我是新來Java
,不知道到底是什麼cause.Let我解釋問題我試圖矩形顏色更改爲黑色,但它不工作
我創建一個矩形,和它的工作,然後我想改變它的顏色爲黑色的一些測試,但似乎不工作以下是我的代碼。 當我從paintComponent
本身調用的方法,然後它的工作,但如果我從任何其他方法做同樣的事情,那麼它不會改變顏色。我試圖調用方法重繪也不過還是一樣
public class Meme extends JPanel {
Rectangle2D.Float myRect = new Rectangle2D.Float(90, 90, 90, 90);
Graphics2D graphics2d;
public void DRAW() {
graphics2d.setColor(new Color(0, 0, 200));
graphics2d.fill(myRect);
}
public void ChangeColour() {
System.out.println("Called");
graphics2d.setPaint(Color.BLACK);
System.out.println("Called2");
graphics2d.fill(myRect);
System.out.println("Called3");
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
graphics2d = (Graphics2D) g;
graphics2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
graphics2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
DRAW();
}
}
按鈕點擊監聽方法
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
meme1.ChangeColour();
}
你需要調用changecolor函數 –
是的,我從paintComonent調用它的工作..但是,當我從另一個函數調用該方法時不起作用 –
所有的繪畫都應該在'paintComponent'方法內完成。這個想法是你改變狀態(即顏色)並調用'repaint'來觸發新的paint pass – MadProgrammer