0

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

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

容器代码

        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();

动作监听器

        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);
        }
    });
4

2 回答 2

0

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

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

然后,您可以根据需要使用卡片布局来交换 GUI 中的面板。

于 2013-10-22T16:02:30.907 回答
0

您可以使用 setPreferedSize 然后打包在 Actionlistener 中以即时调整面板的大小

于 2013-10-24T08:55:04.400 回答