使用DefaultTableModel从表格中删除第一行 的Java程序
在这篇文章中,我们将学习如何使用JTable组件在Java中显示包含多行多列的表格。此外,我们将演示如何使用removeRow()方法从表格中删除第一行。第一个程序展示了如何创建和显示一个包含9行的表格,第二个程序演示了如何删除第一行,留下其余的8行。
使用JTable创建包含行和列的表格
以下是使用JTable创建包含行和列的表格的步骤:
- 首先导入必要的类,例如来自javax.swing包的JFrame、JTable、JScrollPane和DefaultTableModel,以便使用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行将可见:
广告