Java 在JFrame中隐藏某些控件时控件的位置会发生更改

Java 在JFrame中隐藏某些控件时控件的位置会发生更改,java,swing,controls,jframe,show-hide,Java,Swing,Controls,Jframe,Show Hide,我有一个JFrame,其中有许多控件。我多次调用此帧,有时不得不隐藏一些控件。隐藏控件时,未隐藏的其他控件的位置会自动更改。我想避免这种行为。请在这方面提供帮助 pnlRec.setVisible(true); btnNew.setVisible(false); 我建议基于CardLayout的解决方案。使用CardLayout将所有要隐藏的组件放置在JPanel中。每个面板应有2个卡-原始组件和空面板。不用隐藏组件,只需交换显示空卡面板的卡即可 这将使布局保持不变。我建议基于Card

我有一个JFrame,其中有许多控件。我多次调用此帧,有时不得不隐藏一些控件。隐藏控件时,未隐藏的其他控件的位置会自动更改。我想避免这种行为。请在这方面提供帮助

  pnlRec.setVisible(true);
  btnNew.setVisible(false);

我建议基于
CardLayout
的解决方案。使用
CardLayout
将所有要隐藏的组件放置在
JPanel
中。每个面板应有2个卡-原始组件和空面板。不用隐藏组件,只需交换显示空卡面板的卡即可


这将使布局保持不变。

我建议基于
CardLayout
的解决方案。使用
CardLayout
将所有要隐藏的组件放置在
JPanel
中。每个面板应有2个卡-原始组件和空面板。不用隐藏组件,只需交换显示空卡面板的卡即可


这应该使布局保持不变。

添加一个简单的代码片段来表达这一点-不需要超过30行代码,它应该自己编译。它可以帮助您缩小问题范围,并通过提供正式的解决方案来帮助我们。这是许多布局经理的默认行为。您需要提供更多关于布局的详细信息,以帮助usas@MadProgrammer。您可以通过为每个控件使用单独的布局,而不是将控件添加到一个布局中,来实现所需的行为。我觉得,如果在较大的控件组中不适用,则简单地禁用该控件对用户来说比较容易混淆。例如,如果选择了编码MP3和“可变比特率”,则禁用组合。它指定了一个“每秒比特数”的范围(128 KBPS,192 KBPS..。@MadProgrammer我正在使用GroupLayoutManagerad一个简单的代码片段来表达这一点-它不需要超过30行代码,并且应该自己编译。它可以帮助您缩小问题范围,并通过提供正式的解决方案来帮助我们。这是许多布局经理的默认行为。您需要提供更多关于布局的详细信息,以帮助usas@MadProgrammer。您可以通过为每个控件使用单独的布局,而不是将控件添加到一个布局中,来实现所需的行为。我觉得,如果在较大的控件组中不适用,则简单地禁用该控件对用户来说比较容易混淆。例如,如果选择了编码MP3和“可变比特率”,则禁用组合。指定“每秒位”的范围(128 KBPS,192 KBPS..)。@MadProgrammer我正在使用groupLayoutManager