我使用netbeansgui构建了一个jtable,并希望在类的构造函数中更新它。我计划在框架上添加一个搜索选项,所以整个更新的想法对我来说非常关键。
我的代码:
public availableTrumps(TrumpistClient TC){
initComponents();
availableTrumpsTrumpistClient=TC;
String result=null;
String query="SELECT * FROM APP.TRUMPS";
result=this.availableTrumpsTrumpistClient.WritingReading("sql_select", query);
if (result.contains("empty")){
JOptionPane.showMessageDialog(this, "There are now trumps to show.");
}
else if (result.contains("error")){
JOptionPane.showMessageDialog(this, "Error in the connection. Please try again.");
}
else{
int i;
String []data = result.split("\r\n");
String [][] data2 = new String [data.length][];
for (i = 0; i < data.length; i++)
{
data2[i] = data[i].split("&");
}
String[] columnNames = {"From", "To", "Departure Time", "Remaining Places", "Proposer", "ClosingTime", "Cost Per Seat" };
this.jTable1 = new JTable(data2,columnNames);
this.jTable1.setPreferredScrollableViewportSize(new Dimension(500,100));
this.jTable1.setFillsViewportHeight(true);
JScrollPane jps = new JScrollPane(jTable1);
add(jps);
jTable1.revalidate();
}
}
输入的二维数组数据2是良好的和有效的。我添加了最后5行代码,看看它们是否有帮助。我不知道它们是否是必需的,在任何情况下,我都不想更改用gui构建的jtable的图形属性(只是其中的数据)。当我运行程序时,我看到jtable仍然是空的。为什么?
2条答案
按热度按时间vojdkbi01#
我建议您使用一个表模型,每当数据改变时,您就改变模型。构建
JTable
只执行一次示例,而不是在需要更改数据时执行。q43xntqr2#
正如其他人所说,您不想创建多个
JTable
示例。创建这样一个:然后,当需要添加行时,使用
如果要更改单元格:
或者,删除行
i
:有关更多信息,请参阅
DefaultTableModel
文档。如果出于某种原因,每次都必须重新创建表,我相信问题在于您正在调用
revalidate
不打电话repaint
.