[英]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.