Java 事件发生后如何调整框架的大小?

Java 事件发生后如何调整框架的大小?,java,swing,events,resize,frame,Java,Swing,Events,Resize,Frame,我创建了一个表单来选择数据库服务(如SQL server和Oracle)及其版本。然后通过单击“连接”按钮连接到它…但在连接之前,应设置一些参数以放置在URL中…此代码用于“连接”按钮 jButton2 = new JButton(); getContentPane().add(jButton2); jButton2.setText("Connect"); jButton2.addActionListener(new ActionListener(){ public void a

我创建了一个表单来选择数据库服务(如SQL server和Oracle)及其版本。然后通过单击“连接”按钮连接到它…但在连接之前,应设置一些参数以放置在URL中…此代码用于“连接”按钮

jButton2 = new JButton();
getContentPane().add(jButton2);
jButton2.setText("Connect");
jButton2.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent evt){
            LinkedFrame inst = new LinkedFrame();
            inst.setLocationRelativeTo(rootPane);
            inst.setVisible(true);
//Question:  Should I add any method here to do what I want? , and what method should I add?
            }
                    });
        }
这是LinkedFrame代码(从JFrame扩展而来):

LinkedFrame是一种新的表单,用于收集所需信息,包括数据库名称、用户名和密码。这些信息应传递给连接器类的MSSQLSconnect或OracleConnect方法。在这种情况下,此表单在您单击按钮时创建,在您填写所有字段并按enter…(请参见上面的代码)时消失

现在我有一些问题:

我想调整我的主框架(不是linkedframe)的大小,只要我填空并加热回车键,如果连接是为了进行查询

  • 我应该使用什么JFrame方法

  • 该方法应放在何处(在主框架的按钮事件处理程序或Linkedframe的事件处理程序中,或建议的任何位置)


  • 非常感谢您的帮助。

    如果没有更多的代码,我们可能很难为您提供完整的答案,但我会尝试一下

    使用静态连接器是可以的,只要您不希望一次连接超过一个。真的没有问题。但是,如果这样做,则需要将
    连接器
    作为构造函数的一部分或属性传递给
    链接框架
    ,但这是一种设计选择

    对于
    LinkedFrame
    ,我会将JDialog设置为
    modal
    。这将阻止用户输入,直到关闭对话框。这也意味着您可以显示对话框,并且您的代码将被阻止,直到对话框关闭。这为您的代码提供了一个“陷阱”

    一旦用户从
    LinkedFrame
    中提供了所需的信息并关闭对话框,您就可以提取所需的详细信息(如果有)并相应地调整主框架的大小

    更新

    public void actionPerformed(ActionEvent evt) {
    
        LinkedFrame linkedFrame = new LinkedFrame(); // create the dialog, set as modal
        linkedFrame.setVisible(true); // code will block here till you close the dialog
    
        setSize(width, height); // supply the width & height you want
    }
    

    我将LinkedFrame更改为jDialog,并在其构造函数中将模态设置为true。正如您所说,当在按钮事件处理程序中创建LinkedFrame时,我的代码应该被阻止(第一个代码块)……我认为应该在LinkedFrame的处理程序中调用setSize方法,但我不知道如何在那里找到这个方法?!!!!我想
    linkedFrame.setSize(宽度、高度)
    应该可以正常工作,其中
    linkedFrame
    是您对话框的一个实例。我想为我的主框架而不是linkedFrame设置大小…我如何从linkedFrame类获得此方法?啊,对不起,您不应该这样做。一旦对话框返回(在调用
    setVisible
    之后),您应该在主框架内进行更改。对不起,我不是java方面的专家…linkedFrame在主框架前面打开,我想在对话框关闭后立即调整主框架的大小。请给我一个示例代码。它已修改…请再次检查。。。
    public void actionPerformed(ActionEvent evt) {
    
        LinkedFrame linkedFrame = new LinkedFrame(); // create the dialog, set as modal
        linkedFrame.setVisible(true); // code will block here till you close the dialog
    
        setSize(width, height); // supply the width & height you want
    }