繁体   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