簡體   English   中英

如何通過單擊按鈕而無需重置計數器的方法來創建一個在陣列中存儲大量名稱/數字的程序?

[英]How can I create a program that stores a numerous amount of names/numbers in an array by clicking a button without the method resetting my counter?

public void actionPerformed(ActionEvent e)
{
  int clicked = 0;
 if(arg == "Enter")
 {
     clicked++;
 }

 if (clicked == 0)
{
names[0] = nameField.getText();
numbers[0] = numberField.getText();
}

if( clicked == 1)
{
names[1] = nameField.getText();
numbers[1] = numberField.getText();
}

 if(arg == "Print")
 {
   String name = nameField.getText();
   String number = numberField.getText();
   JOptionPane.showMessageDialog(null,names[0] + numbers[0] + names[1] + numbers[1] + numbers[2] + names[2],"Info",JOptionPane.INFORMATION_MESSAGE);
 }

我的程序必須使用多個名稱和數字,並且能夠將它們輸入到數組中。 輸入所有數據后,必須能夠進行打印。 我在Enter方法下遇到麻煩,因為它每次都會繼續重置,而不是保持不變。 它只允許我打印最后鍵入的姓名/號碼,而不是保存所有內容。 我不確定如何解決此問題,在此感謝您的任何建議。

您可以先將被int clicked移出此函數。

現在,每次調用actionPerformed函數時,將其clicked都重置為0,因為在開始時將其設置為0。

public void actionPerformed(ActionEvent e)
{
    int clicked = 0;   //HERE is your problem
    if(arg == "Enter");
    ...

使它成為類的變量而不是函數應該有所幫助。

編輯:您可以做這樣的事情:

int clicked = 0 
public void actionPerformed(ActionEvent e)
{
    if(arg == "Enter"){
         names[clicked] = nameField.getText();
         numbers[clicked] = numberField.getText();
         clicked++;
    }

如前所述,您還可以使用List ,因為如果您不知道需要多大的數組,它可以節省問題。

List<String> names = new ArrayList<String>();
List<String> numbers = new ArrayList<String>();

並在使用中

    if(arg == "Enter"){
         names.add(nameField.getText());
         numbers.add(numberField.getText());
    }

除了數組,還可以使用ArrayList ,它將允許您添加元素而不必提供索引。

不必付出太多,就像這樣:

ArrayList<String> names = new ArrayList<String>();
...
names.add("Johnny"); // Adds to the end of the list
names.add("Frank");

這樣,您無需保留“點擊”計數。

您可以使用.get(i)來獲取索引i處的元素。 或者只使用for每個循環遍歷整個列表:

for(String name : names) { // i.e. for each 'name' in 'names'
    System.out.println(name);
    // Or do something else with 'name'
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM