|
|
1
2
我认为问题是您创建了一个Content类,然后将其添加到框架中。
然而,在MouseListener代码中,您调用
所以这个基本逻辑是错误的,你不想创建一个新的实例。 相反,在Content类的构造函数中,您只需执行以下操作:
然后getInstance()方法将只返回变量,因为它总是有一个值。 此外,MouseListeners应该是Content类中的内部类。也就是说,您应该创建侦听器并将其添加到类中。当您这样做时,您甚至不需要静态getInstance()方法,因为您可以直接访问实例变量。
你不应该使用那些方法。这些用于AWT。在Swing中,您可以使用:
当您在GUI可见后向GUI添加组件时,或者当您更改自定义类中的属性时。revalidate()将调用布局管理器。重新绘制()将绘制组件。在您的类中,您不需要更改任何内容的大小,因此您只需要在setter方法中重新绘制()。 编辑:
我添加了一行代码:
一次只做一次改变。一旦您通过添加单行代码验证了我的假设是正确的。然后你可以把班上的其他人收拾一下。如果你一次做了多个更改,你就不知道是哪一个导致了问题。 |
|
|
Turtled · repaint()方法不重新绘制JPanel 10 年前 |
|
|
Berk Kurkcuoglu · 重新绘制()方法不能多次工作 11 年前 |
|
|
Helios · Java自定义控件重新绘制导致绘制不正确(不同) 11 年前 |
|
|
user2489415 · 试图重新绘制奔跑中的桂 13 年前 |