使用DefaultTableModel从表格中删除第一行 的Java程序


在这篇文章中,我们将学习如何使用JTable组件Java中显示包含多行多列的表格。此外,我们将演示如何使用removeRow()方法从表格中删除第一行。第一个程序展示了如何创建和显示一个包含9行的表格,第二个程序演示了如何删除第一行,留下其余的8行。

使用JTable创建包含行和列的表格

以下是使用JTable创建包含行和列的表格的步骤:

  • 首先导入必要的类,例如来自javax.swing包JFrameJTableJScrollPaneDefaultTableModel,以便使用GUI组件。
  • 通过初始化DefaultTableModel创建一个表格模型,这将帮助我们管理将进入表格的数据。
  • 创建一个JTable对象并将其链接到我们刚刚设置的DefaultTableModel。这将我们的数据模型连接到表格显示。
  • 我们将使用addColumn()方法添加列,以创建四个列。我们将它们命名为“语言/技术”、“文本教程”、“视频教程”和“面试问答”,以便清楚地对数据进行分类。
  • 使用addRow()方法添加九行数据。每一行都将包含不同的技术相关信息。
  • 调用setRowHeight()来增加每一行的高度。这使得文本更容易阅读,并改善了表格的整体外观。
  • 创建一个JFrame,添加包装在JScrollPane中的表格以允许滚动(如果需要),然后使框架可见,以便向用户显示我们的表格。

示例

让我们首先查看一个显示包含行和列的表格的示例。此处的表格有9行:

package my;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class SwingDemo {
   public static void main(String[] argv) throws Exception {
      DefaultTableModel tableModel = new DefaultTableModel();
      JTable table = new JTable(tableModel);
      tableModel.addColumn("Language/ Technology");
      tableModel.addColumn("Text Tutorial");
      tableModel.addColumn("Video Tutorial");
      tableModel.addColumn("Interview QA");
      tableModel.addRow(new Object[] { "Blockchain", "Yes", "No", "Yes"});
      tableModel.addRow(new Object[] { "C#", "Yes", "Yes", "Yes"});
      tableModel.addRow(new Object[] { "Java", "Yes", "No", "Yes"});
      tableModel.addRow(new Object[] { "NodeJS", "No", "Yes", "Yes"});
      tableModel.addRow(new Object[] { "MVC", "Yes", "No", "Yes"});
      tableModel.addRow(new Object[] { "ASP.NET", "Yes", "Yes", "Yes"});
      tableModel.addRow(new Object[] { "F#", "Yes", "No", "Yes"});
      tableModel.addRow(new Object[] { "SharePoint", "Yes", "Yes", "Yes"});
      tableModel.addRow(new Object[] { "AWS", "No", "No", "Yes"});
      table.setRowHeight(table.getRowHeight() + 10);
      JFrame f = new JFrame();
      f.setSize(600, 400);
      f.add(new JScrollPane(table));
      f.setVisible(true);
   }
}

输出

输出如下。第一行是“区块链”:

从JTable中删除第一行

以下是从JTable中删除第一行的步骤:

  • 导入与前一个程序相同的类,包括来自javax.swing包的JFrame、JTable、JScrollPane和DefaultTableModel,以处理我们的GUI组件。
  • 设置一个新的DefaultTableModel。这将允许我们像以前一样管理表格的数据。
  • 创建一个JTable对象并向其中添加相同的四个列:“语言/技术”、“文本教程”、“视频教程”和“面试问答”。这使我们的数据保持井然有序。
  • 使用addRow()方法添加相同的九行技术相关数据,确保与之前的示例保持一致。
  • DefaultTableModel上调用removeRow(0)以从表格中删除第一行。这将更新我们的表格,使其仅显示剩余的行。
  • 创建一个JFrame,将修改后的表格添加到JScrollPane中以允许滚动,然后将框架设置为可见,以便向用户显示更新后的表格。

示例

在给定的程序中,我们将删除第一行。删除后,上述表格中的总行数将为8:

package my;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class SwingDemo {
   public static void main(String[] argv) throws Exception {
      DefaultTableModel tableModel = new DefaultTableModel();
      JTable table = new JTable(tableModel);
      tableModel.addColumn("Language/ Technology");
      tableModel.addColumn("Text Tutorial");
      tableModel.addColumn("Video Tutorial");
      tableModel.addColumn("Interview QA");
      tableModel.addRow(new Object[] { "Blockchain", "Yes", "No", "Yes"});
      tableModel.addRow(new Object[] { "C#", "Yes", "Yes", "Yes"});
      tableModel.addRow(new Object[] { "Java", "Yes", "No", "Yes"});
      tableModel.addRow(new Object[] { "NodeJS", "No", "Yes", "Yes"});
      tableModel.addRow(new Object[] { "MVC", "Yes", "No", "Yes"});
      tableModel.addRow(new Object[] { "ASP.NET", "Yes", "Yes", "Yes"});
      tableModel.addRow(new Object[] { "F#", "Yes", "No", "Yes"});
      tableModel.addRow(new Object[] { "SharePoint", "Yes", "Yes", "Yes"});
      tableModel.addRow(new Object[] { "AWS", "No", "No", "Yes"});
      table.setRowHeight(table.getRowHeight() + 10);
      // remove first row from the table
      tableModel.removeRow(0);
      JFrame f = new JFrame();
      f.setSize(600, 400);
      f.add(new JScrollPane(table));
      f.setVisible(true);
   }
}

输出

现在的输出将显示我们已成功删除第一行,其余8行将可见:

更新于:2024年10月23日

606 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告