入力してボタンを作成できることを知っています
JButton x= new JButton("Something");
x.addActionListener(this);
しかし、ボタンが入力を提供するユーザーのテキストフィールドを作成するようにアクションリスナーを作成するにはどうすればよいですか?また、そのテキストボックスからテキストを読み取るにはどうすればよいですか?
入力してボタンを作成できることを知っています
JButton x= new JButton("Something");
x.addActionListener(this);
しかし、ボタンが入力を提供するユーザーのテキストフィールドを作成するようにアクションリスナーを作成するにはどうすればよいですか?また、そのテキストボックスからテキストを読み取るにはどうすればよいですか?
Swingにはテキストボックスのような動物はありません-JTextFieldのことですか?もしそうなら、...
new JTextField()
add(...)
次に、JPanelなどの適切なコンテナを呼び出してGUIに追加します。getText()
、JTextFieldチュートリアルでこれらすべてを説明します。revalidate()
てrepaint()
、コンテナのレイアウトマネージャがレイアウトを更新し、それ自体を再描画することを認識できるようにする必要があります。これは、実行する必要があることの一般的な要点にすぎません。より具体的なアドバイスが必要な場合は、問題の詳細、これまでに試したこと、うまくいったこと、失敗したことを教えてください。
編集
あなたが尋ねる:
しかし、textFieldが現在のコンテナへの追加ではなく、「ポップアップ」になるようにするにはどうすればよいですか。私はそれが現在のコンテナに追加されるようにそれを持っています...しかしそれは私が必要とするものではありません。
例えば:
// myGui is the currently displayed GUI
String foo = JOptionPane.showInputDialog(myGui, "Message", "Title",
JOptionPane.PLAIN_MESSAGE);
System.out.println(foo);
これは次のようになります。
例えば:
JTextField fooField = new JTextField(15);
JTextField barField = new JTextField(15);
JPanel moreComplexPanel = new JPanel(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.insets = new Insets(5, 5, 5, 5);
gbc.weightx = 1.0;
gbc.weighty = 1.0;
gbc.anchor = GridBagConstraints.WEST;
moreComplexPanel.add(new JLabel("Foo:"), gbc);
gbc.gridx = 1;
gbc.anchor = GridBagConstraints.EAST;
moreComplexPanel.add(fooField, gbc);
gbc.gridx = 0;
gbc.gridy = 1;
gbc.anchor = GridBagConstraints.WEST;
moreComplexPanel.add(new JLabel("Bar:"), gbc);
gbc.gridx = 1;
gbc.anchor = GridBagConstraints.EAST;
moreComplexPanel.add(barField, gbc);
int result = JOptionPane.showConfirmDialog(myGui, moreComplexPanel,
"Foobars Forever", JOptionPane.OK_CANCEL_OPTION,
JOptionPane.PLAIN_MESSAGE);
if (result == JOptionPane.OK_OPTION) {
System.out.println("foo = " + fooField.getText());;
System.out.println("bar = " + barField.getText());;
}
これは次のようになります: