【发布时间】:2019-06-19 07:42:41
【问题描述】:
我正在编写我的第一个 java 应用程序,我想创建一个 GUI,它允许绘制不同的计划。尽可能接近这种表示:
我的实现是基于 SWT。
为了绘制节点和边,我使用了 Canvas 类中的addPaintListener() 方法。
但是我有以下问题,方法paintControl()被无限次调用,每次都重绘。
我问自己是否有办法避免这种情况,或者是用 Java 制定计划的更好方法。
你们中有人能推荐我用 Java 绘制图表和边缘的最佳方法
Canvas canvas = new Canvas(composite, SWT.ALL);
canvas.addPaintListener(new PaintListener() {
@Override
public void paintControl(PaintEvent e) {
Rectangle rect=new Rectangle(0, 0, 60, 30);
e.gc.drawRectangle(rect);
}
});
【问题讨论】:
-
每当发生需要重新绘制的更改时,调用painter listener 是正常的,这应该不是问题。请注意,
SWT.ALL不是Canvas的有效样式 -
感谢您的建议,由于错误的 while 循环,我的程序运行缓慢。我想,问题在于不断调用 PaintControll()。你们中有人可以建议我用 Java 绘制图表和边缘的最佳方法
标签: java user-interface canvas swt draw