簡體   English   中英

帶有組件的現有 JPanel 中的 Java 繪制線

[英]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 作為參數調用方法的有效解決方案是在面板(或框架)中使用現有組件繪制一條線?

你應該做的是:

  1. 覆蓋paintComponent()而不是paint()
  2. paintComponent第一行應該調用父構造函數。
  3. 然后畫你的線。

所以它應該是這樣的:

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.

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