我有三个单选框,然后有个JPanel
一开始JPanel中是两行两列的GridLayout,里面有两个JLabel两个JTextField。
我希望点击另外两个单选框,改变该JPanel中的Layout,同时替换JPanel中的内容
但发现不好使,点击另外两个单选框,JPanel内容不换。
后来尝试调用JPanel的repaint,JPanel变空白,就是不出新内容。
而且奇怪的是,点别的单选框,内容空白,再点回来,2JLabel2JTextField又回来了。就是不出新内容。

解决方案 »

  1.   

    CardLayout我也想到了
    问题就是我想知道不用行不行
    而且为什么只有一开始出现的内容
    动态替换为什么行不通
      

  2.   

    你可以定义三个jpanel啊,三个jpanel上分别定义上需要的组件,监听单选框事件,然后,让其中的两个隐藏,一个显示就行了,但是这样子,不如cardlayout好用以上的提示,最好使用setlayout(null),setbounds来实现
      

  3.   

    你如果只想用一个JPanel的话,在你改变了里面的控件后,应该用JPanel.revalidate();来重新组织里面的控件