簡體   English   中英

如何從paintComponent方法中繪制JPanel中的圖形?

[英]how to draw graphics in JPanel out of paintComponent method?

我需要在Java的JPanel中繪制一些線,我試圖在paintComponent()方法之外的另一個方法中繪制它們,以從另一個類調用它,但是我遇到了一個問題,因為繪制圖形需要一個Graphics對象,因此我嘗試使用this.getGraphics()但對我不起作用:

public class Panel extends JPanel{
    public void drawLine(int x1, int y1, int x2, int y2){
        this.getGraphics().drawLine(x1, y1, x2, y2);
    }
}

有什么建議嗎?

“有什么建議嗎?”

Panel類中保留Line2D對象的列表。 List<Line2D>

遍歷paintComponent方法中的列表

Graphics2D g2 = (Graphics2D)g;
for (Line2D line : lines) {
    g2.draw(line);
}

然后,您可以有一個方法addLine(Line2D line) ,這會將一條線添加到列表中,並repaint() s

public void addLine(Line2D line) {
    lines.add(line);
    repaint();
}

“如何通過paintComponent方法在JPanel中繪制圖形?”

別。 所有自定義繪制都應在paintComponent方法中提供的Graphics對象的上下文內完成。 因此,您需要預料可能會繪制的內容,然后進行繪制。 如上所述,這可以是動態的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM