0

GUIインスタンスから戻り値を取得したい GUIを作成するために実行するコード:

JFrame frame = new JFrame();
frame.getContentPane().add(new ChatPopup());
frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
frame.pack();
frame.setVisible(true);

私の GUI (ChatPopUp コードは次のとおりです。

public class ChatPopup extends javax.swing.JPanel {
private JButton cancelButton;
private JTextField textFieldchatRoomName;
private JLabel jLabel1;
private JButton okButton;

public ChatPopup() {
    super();

    initGUI();
}

private void initGUI() {
    try {
        this.setPreferredSize(new java.awt.Dimension(294, 85));
        {
            jLabel1 = new JLabel();
            this.add(jLabel1);
            jLabel1.setText("Please enter the new chat room name:");
        }
        {
            textFieldchatRoomName = new JTextField();
            this.add(textFieldchatRoomName);
            textFieldchatRoomName.setPreferredSize(new java.awt.Dimension(263, 22));
        }
        {
            cancelButton = new JButton();
            this.add(cancelButton);
            cancelButton.setText("Cancel");
            cancelButton.setPreferredSize(new java.awt.Dimension(84, 22));
            cancelButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    System.out.println("Cancel PRESSED");
                }
            });
        }
        {
            okButton = new JButton();
            this.add(okButton);
            okButton.setText("Ok");
            okButton.setPreferredSize(new java.awt.Dimension(60, 22));
            okButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    System.out.println("OK PRESSED");
                }
            });
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

}

これは非常にシンプルな GUI で、テキスト フィールドと 2 つのボタン ([OK]、[Chancel]) があります。「OK」をクリックすると、textField の値が、GUI インスタンスが最初に実行されたクラスに送信されます。

これを行う方法はありますか??

4

1 に答える 1

0

JPanel投稿した は、モーダル コンテンツ ペインに追加する必要がありますJDialog。同じクラスで、ユーザーがテキスト フィールドに入力した値を返すいくつかのメソッドを提供できます。

元のウィンドウで、ダイアログを開きます。

SomeDialog dialog = new SomeDialog(parent);
dialog.setVisible(true);

後のコードsetVisible()は、モーダル ダイアログが閉じられた後にのみ実行されます。この時点で、テキスト フィールドの値を取得するために前述のメソッドを呼び出すことができます。

于 2012-11-08T15:56:52.600 に答える