当前位置: 首页 > 知识库问答 >
问题:

Java gui未重绘

苏培
2023-03-14

我正在尝试制作一个工具,可以直观地对数组进行排序。

简而言之,尽管执行线程和强制重绘,但我的GUI不会更新。我阅读了我能找到的建议,从线程化和将绘图添加到计时器,到强制重绘,再到进一步分离逻辑和视觉,但行为保持不变。

共有1个答案

白翔
2023-03-14

然而,问题似乎是您没有尝试在GUI线程上进行更新。您需要通过SwingUtilities.Invokelater(thingThatUpdates)重新加入线程

还有一些简单的说明,您没有遵循Java惯例。类名应为camelcase而不是lowercamelcase。基本上,如果您在另一个线程上工作,Swing将不知道更新,因为该线程是“just chillin'”直到您告诉它绘制。

我强烈建议做一些小的、可测试的事情,这样我们就可以帮助您了,链接到一个非标准的GitHub项目真的很烦人。

(我想你可能是一个学生,那些提出要求的学生应该得到一些帮助。就像任何事情一样,在你来之前尽量清理一下,这个社区会对你更有用。)

 类似资料:
  • 我用Java写了Tic-Tac-Toe。我似乎遇到的问题是,当(人类)播放器1和(计算机)播放器2之间出现平局时,GUI会冻结。我已经在“Buttonlistener”类和“Methods”中创建了一个tieCheck,以获得一个平局。 我的程序的工作方式是,当按下一个按钮时,它会将一个值传递给methods类中的数组。在这个数组中,1=玩家1,2=玩家2。 人类玩家总是先走,所以当人类玩家走了4

  • 我正在开发一个JAVA Gui。 我有一个Jpanel,我可以向它添加一个Jlabel,然后将它拖到面板内的其他地方。然后我可以创建一个新的Jlabel,以此类推。我无法解决的问题是,当创建新的JLabel并将其添加到面板时,面板调用repaint()。现有标签和新JLabel已对齐。添加新标签时,我希望现有标签保留在其位置。 有什么建议吗?谢谢你!

  • 当我点击一个按钮,JInternalFrame出现,我想迫使用户只能点击那个内部框架(外部框架应该被禁用),就在他关闭内部框架时,他可以使用外框。 我该怎么做?谢谢

  • 我有一个二维数组(矩阵),尺寸为50x50。在这些矩阵中,每个位置的值为 0 或 1。此矩阵由具有 50x50 按钮的网格布局呈现,如果值为 0 或 1,则这些按钮为白色或黑色。如果我按下一个按钮,矩阵中的相关位置应该将值更改为1。为了实现这一点,我为每个矩阵位置创建了一个按钮的网格,由for循环执行。我还为此 for 循环中的每个按钮实现了一个 ActionListener。我尝试使用 Acti

  • 我目前正在处理这段代码,它在主页面之前实现了一个登录页面。代码如下: 因此,仅登录页面就可以工作,使用正确的凭据,我们会得到JOption MessageDialog,证明凭据是正确的。当我尝试在我的主类中实现它时,它会在主框架前面打开,如下所示: 有没有人知道到底需要改变什么才能作为一个整体出现?

  • 我正在经历JavaAWT 例如,在这篇文章中-如何求解三角方程cos(πθ/β)−cos(2πθ/β)=0? 用户给出了一些复杂的方程式,并展示了图形的外观。 但是我们如何为这个等式编写一个Java的程序来生成图形GUI作为输出呢? 有人能给我指一些文档或链接,让我了解如何用Java实现这一点吗? 提前感谢。