java在另一个类中使用JTable
下面的代码从以“|”分隔的文本文件中获取数据,并将其显示在JTable
中。当我在JFrame
本身上运行它时,它确实工作。但是,我不知道如何将它自己移动到另一个类,并使它成为一个方法,例如public void viewUser(){}
,然后单击按钮从框架中调用它
public void viewUser(){
File file = new File("user.dat");
try {
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
DefaultTableModel model = (DefaultTableModel)jTable1.getModel();
Object[] lines = br.lines().toArray();
for (Object line : lines) {
String[] row = line.toString().split("\\|");
model.addRow(row);
}
} catch (IOException ex) {
Logger.getLogger(UserManagement.class.getName()).log(Level.SEVERE, null, ex);
}
# 1 楼答案
运行此mcve并查看它是否模拟您想要执行的操作:
正如安德鲁·汤姆森·麦克维(Andrew Thomson mcve)评论的那样,硬编码数据至关重要
# 2 楼答案
你在概念上弄错了:模型本身是没有意义的。它需要连接到表才能显示其内容
显示的代码是创建和填充一个新的表模型。然后那个模型和所有的信息都被扔掉了。当对象无法进一步使用时,将数据读入对象是毫无意义的
您可以简单地将返回类型从void更改为DefaultTableModel,并最终返回model对象。然后,您可以对任何JTable使用预填充模型