【发布时间】:2012-05-03 12:48:42
【问题描述】:
所以我在一个有效的框架内的 JScrollPane 中有一个 JTable。我想要做的是将正在显示的表更改为另一个表,该表显示一些其他信息并具有更多/更少的列/行。我该怎么做?
我已经尝试过将另一个表格放入 ScrollPane 之类的方法,但这不起作用,如果我将 ScrollPane 重新放入框架中,它就会消失。
编辑:
我认为这就是与这个问题有关的所有代码。我只是调用函数来改变视图。
Object[][] userData = new Object[50][6];
userTable = new JTable(userData, new String[] { "Namn", "Adress",
"Telefon", "Personnummer", "PIN", "Antal cyklar" }) {
public boolean isCellEditable(int rowIndex, int colIndex) {
return false;
}
};
userTable.setSelectionMode(0);
userTable.getTableHeader().setReorderingAllowed(false);
Object[][] bikeData = new Object[50][7];
bikeTable = new JTable(bikeData, new String[] { "Ägare", "Streckkod",
"Färg", "Märke", "Ram-nummer", "Senast hämtad", "Senast lämnad" }) {
public boolean isCellEditable(int rowIndex, int colIndex) {
return false;
}
};
bikeTable.setSelectionMode(0);
bikeTable.getTableHeader().setReorderingAllowed(false);
JScrollPane tablePane = new JScrollPane(bikeTable);
frame.add(tablePane);
frame.setVisible(true);
}
public void displayUsers(){
tablePane.setViewportView(userTable);
}
public void displayBikes(){
tablePane.setViewportView(bikeTable);
}
【问题讨论】:
-
我从不填写它们,因为提供内容的部分尚未完成。这是必须解决的问题吗?
-
问题是你在你的方法中初始化了一个局部变量
tablePane而不是类成员。在你的方法中删除tablePane前面的JscrollPane(当然也要把它放在你的班级成员面前) -
如果您没有正确填写数据的所有行/列,您确实会遇到很多问题。尝试将它们全部初始化为虚拟数据。
-
我猜当你复制粘贴太多时会发生这种情况:) 是的,如果事情变得非常糟糕,我会填满它们。
-
现在像魅力一样工作,谢谢!
标签: java swing jtable jscrollpane