如何使我的java程序等到文本字段中输入值

时间:2018-04-26 09:48:01

标签: java jframe

基本上我试图制作一个需要条形码的程序,你应该通过GUI输入它,它可以使用nextLine(),因为它暂停并等待输入,我想知道是否有类似的东西,但等待gui中的输入?

1 个答案:

答案 0 :(得分:0)

您可以在输入输入后添加一个按钮,然后聆听按钮事件。请查看以下示例

 public static void main(String[] args) {
      JFrame frame = new JFrame("Example");
      JPanel panel = new JPanel();
      panel.setLayout(new FlowLayout());
      JTextField textField = new JTextField("enter input");

      JButton button = new JButton();
      button.setText("Ok");
      button.addActionListener(new ActionListener()
      {

        @Override
        public void actionPerformed(ActionEvent e)
        {
          JOptionPane.showMessageDialog(frame,
              textField.getText());

        }
      });

      panel.add(textField);
      panel.add(button);

      frame.add(panel);
      frame.setSize(150, 100);
      frame.setLocationRelativeTo(null);
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setVisible(true);
  }

另一个选择是在文本字段中添加文档侦听器。

 public static void main(String args[]) {
    final JFrame frame = new JFrame("Example");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JTextField textField = new JTextField();
    frame.add(textField, BorderLayout.NORTH);

    DocumentListener documentListener = new DocumentListener() {
      public void changedUpdate(DocumentEvent documentEvent) {
        JOptionPane.showMessageDialog(frame,
            textField.getText());
      }
      public void insertUpdate(DocumentEvent documentEvent) {
        JOptionPane.showMessageDialog(frame,
            textField.getText());
      }
      public void removeUpdate(DocumentEvent documentEvent) {
        JOptionPane.showMessageDialog(frame,
            textField.getText());
      }

    };
    textField.getDocument().addDocumentListener(documentListener);

    frame.setSize(250, 150);
    frame.setVisible(true);
  }