2012-12-07 86 views
0

我相信它非常簡單,但這是我的第一個Java類。用戶在輸入Jtextfield中輸入一個數字。 Add按鈕應該將該數字添加到數組列表中。我很難弄清楚如何做到這一點。任何幫助,您可以給我將是真棒將數字添加到Jtextfield的數組列表中

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.util.ArrayList; 

public class ArrayExercise extends JFrame 
{ 


private final int WINDOW_WIDTH = 300; 
private final int WINDOW_HEIGHT = 300; 

private JPanel panel1; 
private JPanel panel2; 

private JLabel messageLabel; 

private JTextField input; 
private JTextArea output; 

private JButton addButton; 
private JButton list; 
private JButton rlist; 
private JButton clear; 


public ArrayExercise() 
{ 
setTitle("Array Exercise"); 

setSize(WINDOW_WIDTH, WINDOW_HEIGHT); 

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

setLayout(new BorderLayout()); 

panel1(); 
panel2(); 

add(panel1, BorderLayout.EAST); 
add(panel2, BorderLayout.WEST); 

setVisible(true); 
input.requestFocus(); 
} 
private void panel1() 
{ 
messageLabel = new JLabel("Input"); 
input = new JTextField(5); 
addButton = new JButton("Add"); 
list = new JButton("List"); 
rlist = new JButton("R-List"); 
clear = new JButton("Clear"); 

addButton.addActionListener(new ButtonListener()); 
list.addActionListener(new ButtonListener()); 
rlist.addActionListener(new ButtonListener()); 
clear.addActionListener(new ButtonListener()); 

    panel1 = new JPanel(); 
    panel1.setLayout(new GridLayout(6,1)); 

panel1.add(messageLabel); 
panel1.add(input); 
panel1.add(addButton); 
panel1.add(list); 
panel1.add(rlist); 
panel1.add(clear); 
} 
private void panel2() 
{ 
output = new JTextArea(12, 10); 

panel2 = new JPanel(); 

panel2.add(output); 
} 
    private class ButtonListener implements ActionListener 
{ 

    public void actionPerformed(ActionEvent e) 
    { 
    String in; 
    int number; 
    int index = 0; 
    ArrayList<String> list = new ArrayList<>();    

    String actionCommand = e.getActionCommand(); 

    if (actionCommand.equals("Add")) 
    { 
    index++; 
    in = addButton.getText(); 
    list.add(addButton.getText()); 
    if (index == 9) 
      { 
      input.setEditable(false); 
      addButton.setEnabled(false); 
      } 

    output.setText(in + " added."); 
    input.setText(null); 
    input.requestFocus(); 

    }  
    if (actionCommand.equals("List")) 
    { 
    for(int x = 0; x <= list.size(); x++) 
    { 
    output.setText((x+1)+ ". " + list.get(x) + "\n"); 
    } 
    } 
} 
} 
public static void main(String[] args) 
{ 
new ArrayExercise(); 
} 
} 
+0

你有沒有嘗試調試的代碼,並找出問題? – Smit

+0

是的,我試過了,但就像我說這是我的第一個Java類,所以我不會那麼做。 –

回答

0

您還有不加入任何字符串值到列表中,您正試圖運行在循環,讓你值ArrayList的名單。如果你沒有給列表添加任何東西,那麼你如何從中提取任何東西。

ArrayList<String> list = new ArrayList<String>(); 

對於每個按鈕附加不同的actionlistener,因爲所有按鈕不應該採取相同的方式。

要添加ArrayList中的元素使用

list.add(input.getText()); // adding text entered into input textfield. 
+0

我試圖添加輸入到Jtextfield的數字,當我點擊添加。我得到的文本,然後我將它添加到數組中。它不工作如此熱門tho –

+0

我可以添加不同的監聽器,但這就是爲什麼我有if語句,即使我做了初始代碼isnt工作的添加按鈕 –

+0

我更新瞭如何添加ArrayList中的元素的代碼。爲了在eclipse中調試任何代碼,你可以得到很好的教程 http://www.comscigate.com/debug/learn_Debug.htm – Smit

0
  • 做一個列表
  • 列表項
  • 做一個文本字段
  • 製作按鈕添加監聽器按鈕
  • 獲取從文本文本字段或文本區域添加到數組列表 對象

這裏是所有你需要做的工作:

ArrayList<String> arrayObject= new ArrayList<String>(); 
JButton button = new JButton(); 
JtextField textBox = new JtextField(); 

    button.addActionListener(new ActionListener() { 

     @Override 
     public void actionPerformed(ActionEvent e) { 
      //inside your action listener: 
      String add_item_to_array = textBox.getText().trim(); 
      arrayObject.add(add_item_to_array); 


     } 
    });