从JTextFields填充的Java,2D字符串数组

时间:2017-01-11 21:08:50

标签: java arrays swing

我正在创建一个商业软件并陷入困境,我需要使用来自多个JTextBox字段的信息填充数组。

我创建了一个数组 -

 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;

不幸的是,我无法找到解决方案如何将这一切放在一起。

任何帮助表示赞赏。

谢谢!

1 个答案:

答案 0 :(得分:3)

如果我理解正确,那么您希望将BookNameCost信息保存到数组中。

但是,在上面的例子中,您创建的2-D String Array看起来像这样:

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

你真正需要的是一个班级,Book,它可以保存有关不同属性的信息。如下所示:

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 */
    ...
}

接下来,您可以像这样创建此类的数组:

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

简单地编写一个for循环来编写不同的书籍详细信息,如下所示:

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

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

    booksInfo[i] = book;
}

如果您只想使用toString()打印任意图书的不同属性,则可以进一步覆盖Book课程的System.out.println(...)方法。

以下是代码段:

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