3

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から拡張)です:

    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は、DB名、ユーザー名、パスワードなどの必要な情報を収集するための新しいフォームです。これらの情報は、コネクタクラスのMSSQLconnectまたはOracleConnectメソッドに渡す必要があります。このフォームでは、ボタンをクリックすると作成され、すべてのフィールドに入力してEnterキーを押すと消えます...(上記のコードを参照)

今私はいくつかの質問があります:

空白を埋めてENTERを加熱し、クエリを実行するために接続が確立されているかどうかを確認したら、すぐにメインフレーム(リンクフレームではない)のサイズを変更したいと思います。

  1. JFrameのどのメソッドを使用する必要がありますか?

  2. メソッドはどこに配置する必要がありますか(メインフレームのボタンイベントハンドラー、Linkedframeのイベントハンドラー、または提案された場所)?

よろしくお願いします。

4

1 に答える 1

3

これ以上のコードがないと、完全な回答を提供するのは難しいかもしれませんが、私は試してみます。

一度に複数の接続が必要にならない限り、静的コネクタを使用しても問題ありません。本当に問題はありません。ただし、そうする場合は、コンストラクターの一部として、またはプロパティとして、にを渡す必要がありますが、これは設計上の選択ですConnectorLinkedFrame

の場合、LinkedFrameJDialogをに設定して使用します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 に答える