2017-01-11 90 views
2

我正在創建一個商業軟件並陷入困境,我需要使用來自多個JTextBox字段的信息填充數組。從JTextFields填充的Java,2D字符串數組

我創建了一個陣列 -

public String[][] BookAttributes = new String[BookRows][BookLines]; 

我想保存從下面的[BookLines]列JTextFields將每本書由用戶添加的信息,它應該自動遞增每當新書加入到股票。

private JTextField tfBookName; 
private JTextField tfBookCost; 
private JTextField tfBookYearOfPublication; 
private JTextField tfBookPublishingHouse; 
private JTextField tfBookISBN; 
private JTextField tfBookAuthor; 
private JTextField tfBookNrOfPages; 

不幸的是,我找不到解決方案如何把這一切放在一起。

任何幫助表示讚賞。

謝謝!

回答

3

如果我的理解正確,那麼您正在尋找將Book信息(如NameCost等)保存到數組中。

但是,在上述情況下,你要創建一個2-D String Array這看起來是這樣的:

Location (0,0) of array -> "foo" 
Location (0,1) of array -> "bar" 
... 
... 

你真正需要的是一個班說,Book可容納對於不同屬性的信息。喜歡的東西如下:如下

int bookRows = 100; 
Book[] booksInfo = new Book[bookRows]; 

而只是爲了stroing編寫一個for循環不同的書細節:

public class Book { 

    private String bookName; 
    private String bookCost; 
    private String bookYearOfPublication; 
    private String bookPublishingHouse; 
    private String bookISBN; 
    private String bookAuthor; 
    private String bookNrOfPages; 

    /* Constructor, Getter, Setters */ 
    ... 
} 

接下來,您可以創建這個類的一個這樣的數組

for(int i = 0; i < bookRows; i++) { 
    Book book = new Book(); 

    book.setBookName(tfBookName); 
    ... 
    ... 

    booksInfo[i] = book; 
} 

如果您想通過簡單的方式打印任何書的不同屬性,您可以進一步覆蓋Book類的toString()方法System.out.println(...)

這裏是代碼片段:

@Override 
public String toString() { 
    return new StringBuilder().append("BookName: ").append(bookName) 
           .append(" | Book Cost: ").append(bookCost).toString(); 
} 
+0

@Helvijs什麼是你所面臨的問題? – user2004685

+0

我試過這個,但是 book.setBookName(tfBookName.getText()); 給我帶來一個錯誤,我無法對類型爲Book的非靜態方法進行靜態引用!所以Eclipse希望我使setBookName方法成爲靜態的(我不認爲它需要是靜態的,因爲它是setter)。 @ user2004685 – Helvijs

+0

@Helvijs你在做'main()'函數中的一切嗎? – user2004685