【发布时间】:2021-04-23 12:55:40
【问题描述】:
我正在尝试循环打印形状,但是当我运行程序时没有任何显示。我正在使用我之前制作的自定义类中的形状。我使用鼠标点击来获取鼠标的每一端(在不同的部分),这是有效的。
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
for (int i = 0; i<howMany;i++){
if (shapes[i] instanceof Line){
Line l = (Line) shapes[i];
g.drawLine((int)l.start.getX(),(int) l.start.getY(),(int) l.end.getX(),(int) l.end.getY());
repaint();
}
}
}
【问题讨论】:
-
字体线的形状是什么?
-
但是当我运行程序时什么都没有显示 - 1) 你怎么知道数组包含任何行? 2)您是否将面板添加到框架中? 3) 你是否重写了 getPreferredSize() 来给面板一个大小?有关完整的工作示例,请参见 Custom Painting Approaches 中的
DrawOnComponent示例。 -
如果没有更多细节(组件的大小是多少?当前颜色和描边是多少?传入多少行?)这个问题无法真正回答。你能发布一个完整的、最小的程序来重现这个问题吗?
-
谢谢大家。抱歉,如果这是愚蠢的哈哈,我刚刚开始编码并且有点困惑。现在修好了!
-
现在修复它! - 怎么样?如果人们读到这篇文章,他们会想知道它是如何修复的。
标签: java swing paintcomponent repaint