Java JDialog和JPanel不按其设置的大小打开,也不显示其标签?

Java JDialog和JPanel不按其设置的大小打开,也不显示其标签?,java,netbeans,Java,Netbeans,在我的Netbeans代码中,我有jpanel和JDialog,它们有时会让我发疯。这些容器上的一些控制器决定不显示或自动更改大小,即使我已经在代码中并通过使用IDE属性设置了它们的大小和内容。例如,某个JPanel上的一些我的JButton没有显示其文本标签,或者我的一些文本字段的大小发生了变化 任何解决方案都将不胜感激 很遗憾,您没有提供任何可以显示问题的代码片段。但我假设您对布局行为感到困惑。通常,我们使用布局管理器并将放置和重新调整图形元素的责任委托给它。布局管理器在绘制父元素时工作,即

在我的Netbeans代码中,我有jpanel和JDialog,它们有时会让我发疯。这些容器上的一些控制器决定不显示或自动更改大小,即使我已经在代码中并通过使用IDE属性设置了它们的大小和内容。例如,某个JPanel上的一些我的JButton没有显示其文本标签,或者我的一些文本字段的大小发生了变化


任何解决方案都将不胜感激

很遗憾,您没有提供任何可以显示问题的代码片段。但我假设您对布局行为感到困惑。通常,我们使用布局管理器并将放置和重新调整图形元素的责任委托给它。布局管理器在绘制父元素时工作,即在执行方法
paint()
期间,该方法异步发生,可能由各种事件(例如改变焦点、重新调整窗口大小等)引起

在这种情况下,通过调用其
setSize()
来更改特定元素大小的所有尝试都可能被决定以不同方式更改同一元素大小的布局管理器覆盖


因此,如果我的假设是正确的,请学习使用布局管理器,并在遇到任何困难时提出更具体的问题

当您使用netbeanside向导创建GUI时,与JPanel和JFrame连接的布局管理器是GroupLayout,它可以按预期工作。它保持您指定的JPanel和JFrame的大小

现在,如果您更改了JPanel或JFrame的LayoutManager,那么您就只能靠自己了。您必须知道更改LayoutManager的后果,并更新/添加所需的代码以使代码按预期运行


如果您想获得在NetBeans组件设计器中看到的内容,我建议您将默认的LayoutManager保留为GroupLayout

感谢您的好意评论,可能是重复的。我使用的是Netbeans,我的问题是,当IDE无法处理这些GUI分区时,会给开发人员带来更大的痛苦,那么为什么要使用Netbeans呢。从基地开始做这件事会更有效。我是java新手,当然需要学习很多东西,我使用Netbeans的原因是为了节省时间并逐渐积累我的知识,但似乎Netbeans只是一个额外的东西需要学习。但我非常感谢您的帮助,让我理解layout manager背后的概念!