3

我创建了一个表单来选择数据库服务,例如 SQL 服务器和 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 扩展):

    private class DatabaseSelectionHandler implements ActionListener{
    public void actionPerformed(ActionEvent evt){
        database=jTextField1.getText();
        username=jTextField2.getText();
        pass=new String(jPasswordField1.getPassword());
        if(database.isEmpty() || username.isEmpty() || pass.isEmpty())
            JOptionPane.showMessageDialog(null, "Please fill all fields", "Error", JOptionPane.ERROR_MESSAGE);
        else
        {   setVisible(false);
            if (service.equalsIgnoreCase("sqlserver"))
                Connector.MSSQLConnection(service);//Single tone connectioto SQL Server
            else
                Connector.ORACLEConnection(service);//Single tone connection to Oracle
//Question:  Should I add any method here to do what I want? , and what method should I add?
        }
    }       
}

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

现在我有一些问题:

我想在填写空白并加热 ENTER 以及是否建立连接以进行查询后立即调整我的主框架(不是链接框架)的大小。

  1. 我应该使用哪种 JFrame 方法?

  2. 该方法应该放在哪里(在主框架的按钮事件处理程序中或在 Linkedframe 的事件处理程序中或任何建议的地方)?

非常感谢您的帮助。

4

1 回答 1

3

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

只要您一次不需要多个连接,就可以使用静态连接器。真的没有问题。但是,如果您这样做了,则需要将 a作为构造函数的一部分或作为属性传递Connector给,但这是一种设计选择。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
}
于 2012-07-26T02:55:13.370 回答