我目前正試圖通過使用GUI來製作彩票程序。我無法弄清楚爲什麼getTicketNumbers()方法沒有返回任何東西。它僅僅是打印[]。JAVA - 問題打印ArrayList
所以也就是:
String output = "Name: " + name + "\nNumbers: " + ticketNumbers + "\n\n";
tickNumbers的輸出[],但名成功打印出了名。
我添加了一個到是System.out.print票證類的構造函數,以確認該ArrayList被順利通過,它是:
public Ticket(ArrayList<Integer> ticketNumbers, String name) {
this.ticketNumbers = ticketNumbers;
this.name = name;
System.out.print("Are the numbers being passed:" + ticketNumbers + "\n");
}
toString方法被成功打印的名字,但再次,它不打印名爲ticketNumbers的ArrayList。
private void enterLottoButtonActionPerformed(java.awt.event.ActionEvent evt) {
if (nameInput.getText().equalsIgnoreCase("")) {
JOptionPane.showMessageDialog(null, "Please Enter Your Name", "Error", JOptionPane.ERROR_MESSAGE);
} else if (ticketNumbers.size() < 4) {
JOptionPane.showMessageDialog(null, "Please Enter Four Numbers", "Error", JOptionPane.ERROR_MESSAGE);
} else {
ticketList.add(new Ticket(ticketNumbers, nameInput.getText()));
JOptionPane.showMessageDialog(null, "You Successfully Entered! \n\nName: " + nameInput.getText() + "\nNumbers: " + ticketNumbers.toString());
ticketNumbers.clear();
numbersTextField.setText("");
nameInput.setText("");
numberOfPeopleLabel.setText(" People Entered: " + ticketList.size());
}
客票艙位等級:
import java.util.ArrayList;
import java.util.Collections;
import javax.swing.JOptionPane;
public class Ticket {
private String name;
private ArrayList<Integer> ticketNumbers = new ArrayList<>();
public Ticket(ArrayList<Integer> ticketNumbers, String name) {
this.ticketNumbers = ticketNumbers;
this.name = name;
System.out.print("Are the numbers being passed:" + ticketNumbers + "\n");
}
public String getName() {
return name;
}
public ArrayList<Integer> getTicketNumbers() {
return ticketNumbers;
}
public ArrayList<Integer> getSortedTicketNumbers() {
Collections.sort(ticketNumbers);
return ticketNumbers;
}
@Override
public String toString() {
String output = "Name: " + name + "\nNumbers: " + ticketNumbers + "\n\n";
return output;
}
}
如果需要的話,其全部代碼: http://pastebin.com/7i8VWQLk和http://pastebin.com/iRd49Nc7
如果您可以爲該程序添加驅動程序並向我們顯示示例輸出,那將會有所幫助。但是我注意到'ticketNumbers.clear();'上面有一行,這讓我懷疑你在某個時候刪除了你的票號。 – markspace
由於ticketNumbers爲空。你在那裏添加什麼東西? –
我創建了一個類的實例:ticketList.add(new Ticket(ticketNumbers,nameInput.getText()));然後我清除GUI類中的數組,以允許其他用戶爲抽獎選擇另一組數字 – Aontaigh