Java 回转重涂问题

Java 回转重涂问题,java,swing,user-interface,Java,Swing,User Interface,我正在使用Swing应用程序的所见即所得编辑器。我使用这个工具创建了一个test.jfpr文件,然后将其导入Eclipse项目并放在类路径上。然后我创建了一个JFrame,它使用该文件作为它的FormPanel,当应用程序启动时——瞧——你有一个非常漂亮的GUI,它不需要任何编程工作。我喜欢 唯一的问题是,当应用程序加载时,“客户端区域”(Windows术语)中没有任何东西在绘制菜单栏以及屏幕的主要内容 当我调整JFrame窗口的大小时,一切都立即绘制/绘制,看起来很棒 如果我接着做了一些应该改

我正在使用Swing应用程序的所见即所得编辑器。我使用这个工具创建了一个
test.jfpr
文件,然后将其导入Eclipse项目并放在类路径上。然后我创建了一个
JFrame
,它使用该文件作为它的
FormPanel
,当应用程序启动时——瞧——你有一个非常漂亮的GUI,它不需要任何编程工作。我喜欢

唯一的问题是,当应用程序加载时,“客户端区域”(Windows术语)中没有任何东西在绘制菜单栏以及屏幕的主要内容

当我调整
JFrame
窗口的大小时,一切都立即绘制/绘制,看起来很棒

如果我接着做了一些应该改变主屏幕的事情(选择菜单项等),那么什么也不会发生。但是如果我调整窗口的大小,那么砰!我看到这些变化生效了

对我来说,这似乎是一个绘画/重画问题,我的应用程序逻辑和我创建的Abeille表单之间存在脱节

在Swing中,是否有一种方法可以通过编程强制整个窗口(客户端和非客户端区域)重新绘制/刷新?如果没有,那么有人知道这里发生了什么吗?提前谢谢

您可以在菜单上注册。完成菜单例程后,调用相应组件上的函数

可能需要一些额外的工作来避免闪烁。

您可以在菜单上注册。完成菜单例程后,调用相应组件上的函数

可能需要做一些额外的工作来避免闪烁。

1)
您有一个非常漂亮的GUI,不需要任何编程工作。我喜欢

  • 使用
2)
如果我做了一些应该改变的事情(选择菜单项等)
在主屏幕上,什么都没有发生。但是如果我调整窗口的大小,那么砰!
我看到更改生效。

  • 使用适当的包装
3)
在Swing中有没有一种方法可以通过编程强制整个窗口
(客户端和非客户端区域相同)是否重新绘制/刷新?

  • 以标准方式编写Swing GUI
4)
如果没有,那么有人知道这里发生了什么吗?

  • 这个框架是基于的,那么您必须知道这个定制的
    LayoutManager
    是如何工作的
1)
您有一个非常漂亮的GUI,不需要任何编程工作。我喜欢

  • 使用
2)
如果我做了一些应该改变的事情(选择菜单项等)
在主屏幕上,什么都没有发生。但是如果我调整窗口的大小,那么砰!
我看到更改生效。

  • 使用适当的包装
3)
在Swing中有没有一种方法可以通过编程强制整个窗口
(客户端和非客户端区域相同)是否重新绘制/刷新?

  • 以标准方式编写Swing GUI
4)
如果没有,那么有人知道这里发生了什么吗?

  • 这个框架是基于的,那么您必须知道这个定制的
    LayoutManager
    是如何工作的

除了mKorbel的建议

  • 验证您是否正在上构建GUI

  • 确保只有在调用所包含的
    窗口上的
    pack()
    后才能调用
    setVisible()


除了mKorbel的建议

  • 验证您是否正在上构建GUI

  • 确保只有在调用所包含的
    窗口上的
    pack()
    后才能调用
    setVisible()


Me:“每当我喝百事可乐时,我都会打嗝。我该如何阻止自己打嗝?”你:“喝可口可乐。”不。也许问题是苏打水。嗯,那么这个问题发布在错误的论坛上,只有关于编码的问题,请尝试一些
Kindej论坛
,在这里你们会看到关于drinksI的奇迹,我的评论和苏打水无关,或多或少和Swing和SWT的herpylderp API有关。这样你就自相矛盾了。我:“每当我喝百事可乐,我就打嗝。我怎么才能不打嗝?”你:“喝可口可乐。”不。也许问题是苏打水。嗯,那么这个问题发布在错误的论坛上,只有关于编码的,请尝试一些
KinderDJ论坛
,在这里你们会看到关于drinksI的奇迹,我的评论和苏打水无关,或多或少和Swing和SWT的herpylderp API有关。你这样自相矛盾。1)提到菜单栏,但没有菜单。2) 假设有一个菜单,告诉用户“如果你没有看到任何东西,激活一个菜单项”看起来很不专业。3) 调用
repaint()
通常是错误的解决方案。@AndrewThompson:答案是为发布答案的人准备的。我不会提供美国宇航局的火箭来解决似乎是家庭作业的问题。此外,这样做不是为了衡量专业程度,而是为了帮助人们(专业和热心的程序员)1)提到了菜单栏,但没有菜单。2) 假设有一个菜单,告诉用户“如果你没有看到任何东西,激活一个菜单项”看起来很不专业。3) 调用
repaint()
通常是错误的解决方案。@AndrewThompson:答案是为发布答案的人准备的。我不会提供美国宇航局的火箭来解决似乎是家庭作业的问题。此外,SO不是用来衡量专业程度的,而是用来帮助人们(专业和热心的程序员)