繁体   English   中英

将方法添加到Java gui

[英]adding method to a 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?

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

  • 最简单的方法是使用JTextArea,给它一个等宽字体,并显示每个对象的String表示,每个对象在一行上,并使用格式化的String,例如可以通过String.format(...) ,以显示内容。
  • 更好的方法是将您的对象集合放入某种类型的TableModel中,然后在JTable中显示数据。 最简单的方法是使用DefaultTableModel,但这需要您将每个Book对象的属性转换为数组或Vector of Object。 更灵活的是创建自己的扩展AbstractTableModel的类,但是这将需要更多的工作来创建TableModel的适当方法,并确保在任何这些方法更改数据核时触发正确的AbstractTableModel通知方法(通常是Book对象的集合)以任何重要的方式。
  • 如果要在时间显示一个对象的属性,可以使用多个JTextField填充GUI,每个JTextField对应一个Book对象的属性,然后使用Next和Previous JButtons移动您的Books集合,显示属性按下按钮时选择的书籍。 假设当按下下一个按钮时,用于从集合中选择Book的int索引变量将递增,并且选择与该索引对应的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

使用JComboBox

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

使用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);

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM