我是 Java 新手,我正在嘗試使用 Java 為我的最終專案創建一個測驗應用程式。每次單擊按鈕時,我都想將在 textField 中輸入的文本添加到我的 ArrayList 中。我嘗試過,但即使多次輸入文本,ArrayList 也只包含一個元素。這是代碼:
public class AddQuestions implements ActionListener {
public ArrayList<String> questions;
JLabel questionLabel = new JLabel();
JTextField question = new JTextField();
JButton addButton = new JButton();
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == addButton){
while(addButton == e.getSource()){
String value = question.getText();
questions = new ArrayList<>();
questions.add(value);
System.out.println(value);
question.setText("");
break;
}
}
System.out.println(questions);
System.out.println(questions.size());
}
}
uj5u.com熱心網友回復:
洗掉while不必要的,因為單擊按鈕時actionPerformed()只會觸發一次。
此外,questions = new ArrayList<>()insideactionPerformed()將始終將物件重新初始化questions為新的記憶體位置,因此您之前添加到它的值會丟失。
public class AddQuestions implements ActionListener {
public ArrayList<String> questions=new ArrayList<>();
JLabel questionLabel = new JLabel();
JTextField question = new JTextField();
JButton addButton = new JButton();
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == addButton){
String value = question.getText();
questions.add(value);
System.out.println(value);
question.setText("");
}
System.out.println(questions);
System.out.println(questions.size());
}
}
我建議你通過閱讀Joyce Farrell 的Java Programming來了解更多關于 java 的知識,這是一本非常適合初學者的書。它有大量的編程練習供您記住java。
uj5u.com熱心網友回復:
每次單擊按鈕后都會為 ArrayList 創建新物件,因此您需要在事件之前初始化 ArrayList 物件,即在 actionPerformed 事件方法上方。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/381313.html
上一篇:為什么getSelectedRow()方法不回傳所選行的索引?
下一篇:如何用按鈕清除textarea?
