Java 如何检查表格是否用Jtable和JFrame制作
您好,我想检查表是否用于添加行。如果不是,我想显示消息:首先创建表。我的问题是:我不知道应该在if语句中键入什么来检查是否有一行(这可能表明表是创建的) 我通过NetBeans JFrame选项以以下方式创建表:Java 如何检查表格是否用Jtable和JFrame制作,java,swing,jtable,jframe,Java,Swing,Jtable,Jframe,您好,我想检查表是否用于添加行。如果不是,我想显示消息:首先创建表。我的问题是:我不知道应该在if语句中键入什么来检查是否有一行(这可能表明表是创建的) 我通过NetBeans JFrame选项以以下方式创建表: jTable1.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { /* space is empty here because on
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
/*
space is empty here because on start I do not create any rows.
user has to click button create or add rows.
*/
},
new String [] {
"Name", "Surname"
}
));
我的if声明:
if(//do not know what type here because new Object [][] will not work){
JOptionPane.showMessageDialog(null, "Create table!");
}else //add row to table because exist {
Object[][] temp = new Object[data.length + 1][2];
for (int i = 0; i < data.length; i++) {
for (int j = 0; j < 2; j++) {
temp[i][j] = data[i][j];
}
}
data = temp;
jTable1.setModel(new DefaultTableModel(data, columns));
}
if(//不知道此处的类型,因为新对象[][]将无法工作){
showMessageDialog(null,“创建表!”);
}else//将行添加到表中,因为存在{
Object[][]temp=新对象[data.length+1][2];
对于(int i=0;i
看起来您正在使用NetBeans GUI builder。如果在突出显示jTable
的情况下转到属性窗格(Netbeans设计视图中最右侧的选项卡),您将看到一个属性模型
- 点击。。。属性右侧的按钮,将弹出一个对话框
- 将行数设置为0,列数设置为所需的列数,并设置列
和标题
,如果需要可编辑类型
actionPerformed
中,无论您如何获取行的数据,都可以使用model.addRow()将该数据的数组添加到模型中
因此,无论何时按下按钮,都会向表中动态添加一行。这是使用GUI Builder执行此操作的最简单方法
编辑
如果要检查行数,请检查rowCount
DefaultTableModel model = (DefaultTableModel)jTable1.getModel();
if (model.getRowCount() < 1) {
do something.
}
DefaultTableModel=(DefaultTableModel)jTable1.getModel();
if(model.getRowCount()<1){
做点什么。
}
是的,我知道。我只想知道我应该在if语句中键入什么来检查表是否已创建(尽管只有一行)。我知道如何创建表格现在我想添加一些特殊的东西,使表格更“智能”-表格必须知道是否已创建。不是吗?因此无法添加行。您的意思是要检查表当前有多少行?我不理解检查表是否已创建的意义。我可能误解了你们好吧,我已经创建了表,我知道如何创建表。我有两个按钮。推送表格时首先创建表格(创建表格时,表格内有一行)。第二步添加行(推送一行)。这就是它的工作原理。现在我想添加一些特别的东西,让它更好。所以我决定不通过每个按钮add来添加行,而是首先if Station将检查是否有一行。我想消除这种情况:打开带有表格的框架,然后按add按钮逐行创建表格。在开始时,我的表没有任何行,只有列的名称。我希望你现在能理解我:)看我的编辑。也许这就是你想要的。
DefaultTableModel model = (DefaultTableModel)jTable1.getModel();
if (model.getRowCount() < 1) {
do something.
}