Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java网格布局顺序_Java_Swing_Grid Layout - Fatal编程技术网

Java网格布局顺序

Java网格布局顺序,java,swing,grid-layout,Java,Swing,Grid Layout,我有3个切换按钮,可以打开/关闭网格布局中的三个面板,我们称它们为面板a、B和C。 我想实现的是,无论我打开面板的顺序是什么,它们都会以顺序(A B C)结束。现在,我只使用add()将项目添加到末尾,这意味着它们的结束顺序与我单击按钮的顺序相同。 我正在更新网格布局,根据有多少按钮处于活动状态,使用正确的行数和列数 使用add(jPanel,0,n)其中,A、B和C面板的n为0、1、2,当我使用的索引超过行数或列数时,会引发非法的组件位置异常可以为每个切换按钮共享ActionListener

我有3个切换按钮,可以打开/关闭网格布局中的三个面板,我们称它们为面板a、B和C。 我想实现的是,无论我打开面板的顺序是什么,它们都会以顺序(A B C)结束。现在,我只使用
add()
将项目添加到末尾,这意味着它们的结束顺序与我单击按钮的顺序相同。 我正在更新网格布局,根据有多少按钮处于活动状态,使用正确的行数和列数


使用
add(jPanel,0,n)
其中,A、B和C面板的n为0、1、2,当我使用的索引超过行数或列数时,会引发非法的组件位置异常

可以为每个切换按钮共享ActionListener

代码类似于:

  • 从父面板中删除所有面板
  • 遍历所有切换按钮,并在最后的面板中为每个选定的切换按钮添加回
  • 重新验证()主面板
  • 重新绘制()主面板

  • 只有在对用户执行重新验证()/repaint()操作时,才会删除/添加面板,因为用户不会注意到最初删除所有面板的任何效果。

    您不会说面板上有什么,但您可以在一步中创建JPanel和切换按钮,在第二步中禁用应禁用的JPanel,并在第三步和后续步骤中左键单击切换按钮时启用JPanel。请让我们给这些面板起描述性的名字,不要叫它们
    A
    B
    C