前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Java中使用Table

如何在Java中使用Table

作者头像
灬沙师弟
发布2023-03-07 09:44:47
2.1K0
发布2023-03-07 09:44:47
举报
文章被收录于专栏:Java面试教程

大家好,我是小面,今天给大家分享一下在java中如何运用Table。

在Java中,表用于将数据排列成列和行。列是表中水平排列的空间,而行是表中垂直排列的空间。列和行之间的交点称为单元格,用于保存单条数据。

在Java中,开发人员可以使用JTable方法在其应用程序中创建表。JTable是从JComponent类继承的Swing组件。

如何在Java中创建表

要创建表,需要创建JTable类的实例。您需要在其构造函数中为要构造的表提供两个参数(row和column),如以下示例代码段所示:

代码语言:javascript
复制
JTable table = new JTable (row, column);

row和column的值可以由两个整数值组成,如下所示:

代码语言:javascript
复制
JTable table = new JTable (5,3);

上面的语句创建了一个包含5行3列的表。

程序员也可以为每行中的数据提供一个二维数组,为列名提供一个一维数组,而不是为JTable构造函数提供整数。以下是如何使用数组在Java中创建表:

代码语言:javascript
复制
JTable(Object[][] rowData, Object[] columnNames)

下面是一些示例代码,展示了如何用Java创建一个表并填充数据:

代码语言:javascript
复制
import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
 
class Table{
   public static void main(String args[]){
      JFrame frame = new JFrame();
 
      String[] columnNames = {"姓名", "年龄", "是否学生"};
 
      Object[][] data = {
       {"陈晨曦", new Integer(5), new Boolean(false)},
       {"阿星", new Integer(3), new Boolean(true)},
       {"阿楠", new Integer(2), new Boolean(false)},
       {"高东",new Integer(20), new Boolean(true)},
       {"阿强", new Integer(10), new Boolean(false)}
   };
    JTable table = new JTable(data, columnNames);
 
   frame.add(table);
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   frame.setSize(400,400);
   frame.setLocationRelativeTo(null);  
   frame.setVisible(true);
   }
}

如果在Idea中运行此代码,它将生成以下输出:

当您单击上述任何一个单元格时,您会注意到其中的数据是可编辑的。如果您只是向用户展示数据,这不是一个特别理想的功能。此外,在向用户演示时,所有数据都被视为字符串。

另一个值得关注的问题是,如果您在数据库对象中查询特定值,则必须将所有值复制到数组或向量中。

为了避免这些问题,您可以使用模型创建表格。

如何在Java中使用模型创建表

首先,了解如何处理表数据很重要。所有表(包括使用JTable方法创建的表)都使用表模型来管理其数据。当开发人员没有向JTable的构造函数提供表模型时,将自动为其创建DefaultTableModel的实例。因此,如果需要使用自定义模型,则需要将其提供给JTable构造函数,如以下示例代码所示:

代码语言:javascript
复制
 JTable table = new JTable(new MyTableModel());

要定义表模型,程序员需要创建一个扩展AbstractTableModel类的类:

代码语言:javascript
复制
class MyTableModel extends AbstractTableModel{
}

在表模型中,可以包括行和列名的数据,如前面的JTable示例所示。为了确保表模型类是一个具体的类,您需要实现AbstractTableModel的以下三个方法:

代码语言:javascript
复制
public int getRowCount();
public int getColumnCount();
public Object getValueAt(int row, int column);

您可以实现更多的方法,但必须确保上面的方法是您实现的方法之一。您可以从官方的Oracle API文档中找到其他方法的描述。

下面的代码示例展示了如何在Java中使用表模型:

代码语言:javascript
复制
import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
 
class TableUsingModel{
   public static void main(String args[]){
      JFrame frame = new JFrame();
      JTable table = new JTable(new MyTableModel());
 
      frame.add(table);
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setSize(400,400);
      frame.setLocationRelativeTo(null);  
      frame.setVisible(true);
   }
}
 
class MyTableModel extends AbstractTableModel {
   String[] columnNames = {"姓名", "年龄", "位置"};
 
      Object[][] data = {
       {"陈晨曦", new Integer(25), "北京"},
       {"阿星", new Integer(31), "上海"},
       {"阿楠", new Integer(29), "河南"},
       {"高东",new Integer(20), "浙江"},
       {"阿强", new Integer(18), "福建"}
   };
 
   public int getRowCount() {
       return data.length;
   }
 
   public int getColumnCount() {
       return columnNames.length;
   }
  
   public Object getValueAt(int row, int col) {
       return data[row][col];
   }
 
}

这将产生以下输出:

这一次,尝试双击任何单元格,你会发现它是不可编辑的。

如何在Java中管理列宽和列高

如果要设置行的高度,可以使用setRowHeight()方法。

代码语言:javascript
复制
JTable table = new JTable(data, columnNames);
table.setRowHeight(80);

上述示例将每行的高度设置为80像素。

要设置列的宽度,可以使用setPreferredWidth()方法。首先,需要创建TableColumnModel类型的列模型。然后,您可以获得所需的特定列,然后设置其首选宽度。下面是一些示例代码,说明如何在Java中设置表的列宽:

代码语言:javascript
复制
TableColumnModel columnModel = table.getColumnModel();
columnModel.getColumn(2).setPreferredWidth(200);

小结

在本编程教程中,程序员学习了如何使用JTable或表模型在Java中创建表。

上面显示的代码示例将表直接添加到JFrame容器中。但是,您可以将表添加到滚动窗格中,这样当数据超出容器时,用户可以轻松浏览数据。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-11-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java面试教程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何在Java中创建表
  • 如何在Java中使用模型创建表
  • 如何在Java中管理列宽和列高
  • 小结
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档