Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.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 从ActionListerner调整容器大小_Java_Swing_Containers - Fatal编程技术网

Java 从ActionListerner调整容器大小

Java 从ActionListerner调整容器大小,java,swing,containers,Java,Swing,Containers,我不确定这是否可行,但我想做的是动态调整容器的大小。因此,当用户单击登录时,容器将调整大小以显示新的按钮和面板 目前,我的代码看起来像这样 集装箱代码 c = getContentPane(); c.add(panel); //panel contains login panel, user panel and system panel setDefaultCloseOperation(EXIT_ON_CLOSE); setVisible(

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

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

集装箱代码

        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);
        }
    });
//面板包括登录面板、用户面板和系统面板

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


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

您可以使用setPreferedSize,然后将Actionlistener打包以动态调整面板的大小

尝试删除
c.validate()
,并在最后添加
c.invalidate()
。@DavidConrad cheers man,但没有成功:(我不需要更换面板。成功登录后,用户应能看到所有面板。@camickr