私はjavaの初心者ですので、これは愚かな質問かもしれません。ユーザーがEnterを押すまで私のプログラムを止めたいです。私はActionListenerを実装しましたが、キーが押されています。私が考えることができるのは、while条件を実装することですが、動作しないようです。GUIを介してユーザーの入力を待っています
public class main {
static JTextField field;
static int x;
public static void main (String [] args)
{
JFrame frame = new JFrame("frame");
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
frame.add(panel);
field = new JTextField("field");
panel.add(field);
field.addActionListener(new action());
while(x==0)//i want my program to stop here ,wait for user enter input and then output below message
JOptionPane.showMessageDialog(null, "show message after user has preseed enter");
}
static public class action implements ActionListener
{
public void actionPerformed(ActionEvent e) {
if(e.getSource() == field)
{
JOptionPane.showMessageDialog(null, "user pressed enter");
x=1;
}
}
}
}
GUIのHow to Make Dialogsを見てくださいので、単一のスレッドスイング、イベントドライバですので、任意のブロックまたは長い台無し操作はUIを停止し、更新またはユーザー入力に応答してから防ぐことができます。あなたがしようとしているものに基づいて、何らかの種類のモーダルダイアログを使うことをお勧めします。 – MadProgrammer