从ActionListener调整容器大小

时间:2013-10-22 15:58:57

标签: java swing containers

我不确定这是否可行但是我想要做的是动态调整容器的大小。因此,当用户单击登录时,容器将调整大小以显示新按钮和面板。

目前我的代码看起来像这样

货柜代码

        c = getContentPane();
    c.add(panel); //panel contains login panel, user panel and system panel
    setDefaultCloseOperation(EXIT_ON_CLOSE);        
    setVisible(true);
    setSize(400, 200); //width, height
    setLocation(600,0);
    setResizable(false);
    validate();

的ActionListener

        loginButton.setText("Login");
    loginButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent evt) {
            c.setSize(400,630);
            c.validate();
            userScrollPane.setVisible(true);
            sysScrollPane.setVisible(true);
            resultsButtonPanel.setVisible(true);
            loginButton.setEnabled(false);
            resetButton.setEnabled(true);
            resultsButton.setEnabled(true);
            tfUser.setEditable(false);
            tfPass.setEditable(false);
            mb.setVisible(true);
        }
    });

2 个答案:

答案 0 :(得分:0)

  

//面板包含登录面板,用户面板和系统面板

面板应仅用于一个目的。如果您有多个功能,则创建多个面板。

然后,您可以根据需要使用Card Layout交换GUI中的面板。

答案 1 :(得分:0)

你可以使用setPreferedSize然后打包你的Actionlistener来动态调整面板的大小