如何将JButton连接到JTextField来存储输入到JTextField中的int?

时间:2019-04-10 17:27:07

标签: java

我创建了一个简单的GUI JFrame,它具有一个文本字段和带有给定动作侦听器的按钮。但是我试图将文本字段连接到按钮,以便每当我在文本字段中输入一系列数字并按下按钮时,我的代码就会将一系列数字存储到一个变量中,稍后我将使用它。如何将两者连接起来?

我看过其他stackoverflow帖子,但似乎找不到解决方法。

   //textfield
   id = new JTextField(7);// accepts up to 7 characters    

   //buttons
   go = new JButton("Go");
   go.setBounds(100, 150, 140, 40);
   CL = new JButton("Cheap Lock");
   CL.setBounds(100,300,140,40);

   //JLabel that shows button has stored the input
   go1 = new JLabel();
   go1.setBounds(10, 160, 200, 100);


   //button action listener
   go.addActionListener(new ActionListener() {          
            @Override
            public void actionPerformed(ActionEvent arg0) {
                    go1.setText("Student ID has been submitted.");              
            }          
          });
   //textfield actionlistener
   id.addActionListener(new ActionListener() {
         @Override
         public void actionPerformed(ActionEvent e) {
         id.getText();
         }
         });
   }

1 个答案:

答案 0 :(得分:2)

按钮上有ActionListener,这是一个很好的开始。您应该编写一些逻辑以从JTextField中获取文本,根据需要进行解析并将其存储在数据结构(例如ArrayList)中。

您现在似乎不需要JTextField ActionListener-将id.getText()调用移至JButton ActionListener并将其存储在变量中

//textfield
id = new JTextField(7);// accepts up to 7 characters    

//buttons
go = new JButton("Go");
go.setBounds(100, 150, 140, 40);
CL = new JButton("Cheap Lock");
CL.setBounds(100,300,140,40);

//JLabel that shows button has stored the input
go1 = new JLabel();
go1.setBounds(10, 160, 200, 100);


//button action listener
go.addActionListener(new ActionListener() {          
        @Override
        public void actionPerformed(ActionEvent arg0) {
                go1.setText("Student ID has been submitted.");
                String value = id.getText();
                // logic here - e.g. Integer.parseInt();            
        }          
});