[英]Java paint line in existing JPanel with components
我已經搜索了幾個小時,包括關於堆棧的其他問題,例如。 我需要最簡單的方法在 AWT 面板中的 java 中畫一條線
但找不到我的答案。
我有一個帶有多個動態生成組件的面板 gridbaglayout。 該類擴展了 JFrame,因此不能像上面的問題一樣擴展 JPanel。
添加所有組件后,我需要從 1 到另一個繪制線,
我得到了所有的坐標,但似乎無法畫一條線。
使用時:
public void paint(Graphics g) {
g.drawline(100,100,200,200) //I used static values to test first.
}
將繪制一條線,但未顯示其他組件。
當我這樣做時(在添加所有組件等之后的構造函數中):
Graphics g = getGraphics(); //class extends JFrame thus I can call getGraphics() directly.
g.drawLine(100,100,400,400); //again static values for test purposes.
我的所有組件都顯示了,但沒有顯示該行。 -> 和沒有代碼一樣。
對我來說,以 x1 x2 y1 y2 作為參數調用方法的有效解決方案是在面板(或框架)中使用現有組件繪制一條線?
你應該做的是:
paintComponent()
而不是paint()
。paintComponent
第一行應該調用父構造函數。所以它應該是這樣的:
public void paintComponent(Graphics g) {
super.paintComponent(g); // this will paint your components
g.drawLine(100,100,400,400); // this will paint your line
}
有關更多信息,您應該查看自定義繪畫教程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.