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