向Java gui添加方法



我试图设置一个GUI来显示类的数组,但不知道如何将数组添加到GUI。我对Java相当陌生,所以我可以使用所有可能的帮助。

Book[] bk = new Book{10]
JFrame frame = new JFrame("Bookstore");
frame.setSize(600, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
JPanel panel = new JPanel();
frame.getContentPane().add(panel, BorderLayout.NORTH);
frame.getContentPane().add(panel);
frame.setVisible(true);
class Book implements Comparable<Book> {
//rest of code  }

如何在GUI中显示Book ?

您的问题有点不清楚,但是如果您想在GUI中显示图书的名称,首先需要给每个Book一个名称,也就是字符串表示。使用getName()方法为Book添加name属性

然后创建一个包含图书名称的String数组。你可以这样做:

String names = new String[books.length];
for(int i=0; i<names.length; i++){
    names[i] = books[i].getName();
}

然后你可以把所有的名字输入到JTextArea,或者如果你想让用户能够选择一本书,也可以输入JComboBox

With a JComboBox:

JComboBox combo = new JComboBox(names);
panel.add(combo);

With a JTextArea:

JTextArea textArea = new JTextArea(10,names.length);
textArea.setEditable(false);
for(int i=0; i<names.size; i++){
    textArea.append("Book " + i + "#: " + names[i] + "n");
}
panel.add(textArea);

当您需要显示一个类的对象的集合或数组的属性时,您有几个选项可供您使用,包括:

  • 最简单的是使用JTextArea,给它一个等宽字体,并显示每个对象的字符串表示,每个对象在一行,并使用格式化字符串,例如可以通过String.format(...)获得,来显示内容。
  • 最好是将对象集合放入某种类型的TableModel中,然后在JTable中显示数据。最简单的方法是使用DefaultTableModel,但这需要将每个Book对象的属性转换为数组或Vector of object。更灵活的方法是创建自己的类来扩展AbstractTableModel,但这需要你做更多的工作来创建适当的TableModel方法,并确保在这些方法以任何重要的方式改变数据核(通常是Book对象的集合)时触发正确的AbstractTableModel通知方法。
  • 如果您想一次显示一个对象的属性,您可以用几个JTextFields填充GUI,每个JTextFields对应于Book对象的一个属性,然后使用Next和Previous JButtons在Book集合中移动,在按下按钮时显示所选图书的属性。例如,当按下下一个按钮时,用于从集合中选择Book的int索引变量被加1,与该索引对应的Book被选中。然后,所选Book的所有属性都显示在相应的文本字段中。

相关内容

  • 没有找到相关文章