JTable的入门详细介绍
java中jtable的用法

java中jtable的用法一、JTable简介JTable是Java Swing包中的一个组件,用于在图形用户界面(GUI)中显示和编辑表格数据。
它可以显示任何类型的数据,包括文本、数字、日期和图像等。
二、创建JTable1. 创建一个空的JTable可以通过以下代码创建一个空的JTable:```JTable table = new JTable();```2. 从二维数组创建JTable可以通过以下代码从二维数组创建一个简单的JTable:String[][] data = {{"John", "Doe"}, {"Jane", "Doe"}};String[] columnNames = {"First Name", "Last Name"};JTable table = new JTable(data, columnNames);```3. 从TableModel创建JTable可以通过实现TableModel接口并使用它来创建一个定制的TableModel,然后将其传递给JTable构造函数来创建一个自定义的JTable。
4. 从数据库中获取数据并创建JTable可以通过使用Java数据库连接(JDBC)API与数据库进行交互,并将结果集转换为TableModel,然后将其传递给JTable构造函数来从数据库中获取数据并创建一个自定义的JTable。
三、设置表格属性1. 设置表头可以使用以下代码设置表头:```String[] columnNames = {"First Name", "Last Name"};table.setColumnIdentifiers(columnNames);```2. 设置表格行高和列宽可以使用以下代码设置表格行高和列宽:```table.setRowHeight(30);table.getColumnModel().getColumn(0).setPreferredWidth(100); ```3. 设置表格背景色和前景色可以使用以下代码设置表格背景色和前景色:```table.setBackground(Color.white);table.setForeground(Color.black);```4. 设置表格字体可以使用以下代码设置表格字体:```Font font = new Font("Arial", Font.PLAIN, 14);table.setFont(font);```5. 设置表格边框可以使用以下代码设置表格边框:```Border border = BorderFactory.createLineBorder(Color.black); table.setBorder(border);```四、渲染器和编辑器1. 渲染器渲染器用于将单元格中的值呈现为用户界面上的文本或图像。
swing中Jtable的使用方法

如何使用Table利用JTable 类,可以以表格的形式展示数据,可设置允许用户编辑数据。
JT able 本身不拥有或者缓存数据;它只是数据的视图。
这里有一个放在滚动面板上的典型表格:本文展示如何完成一些常见的表格相关的任务:包括以下部分:(1)创建一个简单的表格(2)向容器添加表格(3)改变每每一栏的宽度(4)用户选择(5)创建表格模型(6)监听数据改变(7)点燃数据改变事件(8)概念:编辑器和渲染器(9)使用自定义渲染器(10)为单元格指定提示工具(11)为列头指定提示工具(12)排序和过滤(13)使用组合框作为编辑器(14)使用其他编辑器(15)使用编辑器验证用户的文本输入(16)打印(17)例子列表(1)创建一个简单的表格SimpleTableDemo.java中的表格在一个字符串数组中声明各个列名Java代码1String[] columnNames = {"First Name",2"Last Name",3"Sport",4"# of Years",5"Vegetarian"};数据初始化并存储在二维数组:Java代码6Object[][] data = {7 {"Kathy", "Smith",8"Snowboarding", new Integer(5), new Boolean(false)},9 {"John", "Doe",10"Rowing", new Integer(3), new Boolean(true)},11 {"Sue", "Black",12"Knitting", new Integer(2), new Boolean(false)},13 {"Jane", "White",14"Speed reading", new Integer(20), new Boolean(true)},15 {"Joe", "Brown",1617"Pool", new Integer(10), new Boolean(false)}18};接着表格使用这些数据和列名构造一个表格:Java代码19JTable table = new JTable(data, columnNames);有两个接收数据的JT able 构造器:∙JTable(Object[][] rowData, Object[] columnNames)∙JTable(Vector rowData, Vector columNames)这些构造函数的好处是容易实现,而缺点是:∙他们自动设置每个单元格为可编辑∙数据类型都视为一样的(字符串类型)。
JTable应用

TableModel 对象
简单的说,JTable 只是一个界
面,主要负责显示功能,但
JTable 对象具体显示多少行多少列,甚示每行每列中显示什么类型的数据,JTable 中的单元
格是否可编辑,编辑之后怎么办…关于数据提供和数据操作的实现,都是由这个 JTable 对象
的 TableModel 对象所负责的;反向而言,当 JTable 对象界面的数据被改动时,JTable 会自
//得到某一列的列名,columnIndex:列的序号,从0开始 public String getColumnName(int columnIndex);
ห้องสมุดไป่ตู้
//得到某一列的数据类型,columnIndex:列的序号,从0开始 public Class<?> getColumnClass(int columnIndex);
2.JTable 展示方式的美化:...........................................................................................................7 1.设置表格的宽度和高度: ....................................................................................................7 2.要显示表头: ......................................................................................................................8 3.新加列,将列设为下拉框: ..............................................................................................8 4.表格排序: ............................................................................................................................9
JTable的使用

JTable的使用收藏1.JTable与TableModel (2)1.TableModel与JTable的关系: (2)2.TableModel实践: (3)3.使用JTable+TableModel展示java中的数据对象: (4)2.JTable展示方式的美化: (7)1.设置表格的宽度和高度: (7)2.要显示表头: (8)3.新加列,将列设为下拉框: (8)4.表格排序: (9)3. JTable事件响应和项目设想 (9)4.一个游戏:《java连连看》 (10)1.需求分析: (10)2.编写TableModel和界面实现: (11)3.连连看事件监听: (14)总结和任务: (15)不止乎方法,理关乎理念!1.JTable与TableModel1.TableModel与JTable的关系:前面,我们己学会在界面上加入一个简单的JTable对象:JTable table=new JTable(3,5);这段代码即可创建一个三行五列的表格用以显示在界面上;在具体的应用中,我们肯定是要让JTable显示我们自己定义的数据,比如将上例中的UserInfo对象或UserBlog对象显示到表格中,那就必须定制JTable对象所要使用的javax.swing.table.TableModel对象,在开始前,我们先理解javax.swing.table.TableModel 和JTable之间的关系:模特与衣服之间的关系:JTable对象简单的说,JTable只是一个界面,主要负责显示功能,但JTable对象具体显示多少行多少列,甚示每行每列中显示什么类型的数据,JTable中的单元格是否可编辑,编辑之后怎么办…关于数据提供和数据操作的实现,都是由这个JTable对象的TableModel对象所负责的;反向而言,当JTable对象界面的数据被改动时,JTable会自动调用自己模型中的方法将改动反映到模型中。
java jtable用法

java jtable用法Java JTable用法一、概述JTable是Java Swing库中的一个控件,用于在图形用户界面中显示和编辑表格数据。
它提供了丰富的功能和灵活的配置选项,使开发人员能够轻松地创建和管理数据表格。
二、创建JTable对象1.构造函数:可以使用JTable的构造函数来创建一个空的表格:JTable table = new JTable();2.数据模型:可以通过设置数据模型来创建一个包含指定数据的表格:String[][] data = {{"John", "Doe"}, {"Jane", "Smith "}, {"Bob", "Johnson"}};String[] columnNames = {"First Name", "Last Name"}; JTable table = new JTable(data, columnNames);三、设置表格属性1.表头:可以使用setTableHeader()方法来设置表格的表头:JTableHeader header = ();();(new Font("Arial", , 16));(header);2.行高:可以使用setRowHeight()方法来设置表格的行高度:(30);3.列宽:可以使用setColumnWidth(int column, int width)方法来设置指定列的宽度:().getColumn(0).setPreferredWidth(100);四、添加行和列1.添加行:可以使用数据模型的addRow(Object[] rowData)方法来添加一行数据:DefaultTableModel model = (DefaultTableModel) (); (new Object[]{"Tom", "Brown"});2.添加列:可以使用数据模型的addColumn(Object columnName)方法来添加一列数据:("Age");五、单元格编辑1.编辑模式:可以使用setCellEditor()方法来设置一个单元格编辑器:DefaultCellEditor editor = new DefaultCellEditor(ne w JTextField());().getColumn(1).setCellEditor(editor);2.单元格监听:可以使用addCellEditorListener()方法来添加一个单元格编辑器监听器:(new CellEditorListener() {@Overridepublic void editingStopped(ChangeEvent e) {// 编辑完成后的处理}@Overridepublic void editingCanceled(ChangeEvent e) {// 编辑取消后的处理}});六、样式和渲染1.颜色:可以使用自定义的继承自DefaultTableCellRenderer的渲染器来设置单元格的前景色和背景色:class MyRenderer extends DefaultTableCellRenderer { public Component getTableCellRendererComponent(JTabl e table, Object value, boolean isSelected, boolean hasFo cus, int row, int column) {Component component = (table, value, isSelected,hasFocus, row, column);if (row % 2 == 0) {();} else {();}return component;}}// 设置渲染器().getColumn(1).setCellRenderer(new MyRenderer());2.字体:可以使用自定义的渲染器来设置单元格的字体:().getColumn(0).setCellRenderer(new DefaultTableCel lRenderer() {public Component getTableCellRendererComponent(JTabl e table, Object value, boolean isSelected, boolean hasFo cus, int row, int column) {Component component = (table, value, isSelected, hasFocus, row, column);(new Font("Arial", , 14));return component;}});以上是Java JTable的一些常用用法和详细讲解。
swing jxtreetable用法

swing jxtreetable用法Swing JXTreeTable是基于Java Swing的扩展组件,提供了一个带有树形结构的表格控件。
JXTreeTable具有JTable的所有功能以及额外的树形结构功能,可以同时展示表格和树状结构的数据。
本文将详细介绍JXTreeTable的用法,包括创建和初始化、添加数据、自定义表格和树状结构、以及其他常用操作等。
1. 创建和初始化JXTreeTable首先,创建一个JXTreeTable实例需要导入相应的包和类。
JXTreeTable位于swingx包中,可通过以下代码导入:import org.jdesktop.swingx.JXTreeTable;然后,可以通过构造函数创建JXTreeTable实例:JXTreeTable treeTable = new JXTreeTable();如果需要传递表格数据模型和树状结构数据模型,可以使用以下构造函数:TreeTableModel treeT ableModel = new MyTreeTableModel(root); 自定义树状结构数据模型TableModel tableModel = new DefaultTableModel(data, columnNames); 表格数据模型JXTreeTable treeTable = new JXTreeTable(treeTableModel, tableModel);在创建JXTreeTable实例后,可以通过以下代码设置表格的可见行数和列数:treeTable.setVisibleRowCount(10); 可见行数为10treeTable.setVisibleColumnCount(5); 可见列数为52. 添加数据添加数据到JXTreeTable可以使用默认的TableModel类或者自定义的TableModel类。
如果使用默认的TableModel类,可以使用以下代码添加行数据:DefaultTableModel model = (DefaultTableModel)treeTable.getTableModel();model.addRow(new Object[] { "Data 1", "Data 2", "Data 3" });如果需要添加树状结构的数据,可以使用以下代码:TreeTableModel treeModel = (TreeTableModel)treeTable.getTreeTableModel();treeModel.insertNodeInto(node, parent, index);其中,node是要插入的节点,parent是父节点,index是要插入的位置。
JAVAWEb从入门到精通第二十一章01利用JTable类直接创建表格

操纵表格
在编写应用表格的程序时,经常需要获得表格的一些信息,如表格拥有的行数和 列数。下面是JTable类中三个经常用来获得表格信息的方法。 getRowCount():获得表格拥有的行数,返回值为int型。 getColumnCount ():获得表格拥有的列数,返回值为int型。 getColumnName(int column):获得位于指定索引位置的列的名称,返回值为 String型。
Thank youFra bibliotek定制表格
表格创建完成后,还需要对其进行一系列的定义,以便适合于具体的使用情况。 默认情况下通过双击表格中的单元格就可以对其进行编辑。
如果不需要提供该功能,可以通过重构JTable类的isCellEditable(int row, int column)方法实现。默认情况下该方法返回boolean型值true,表示指定单元格可 编辑,如果返回false则表示不可编辑。 如果表格只有几列,通常不需要表格列的可重新排列功能。在创建不支持滚动条 的表格时已经使用了JTableHeader 类的对象,通过该类的 setReorderingAllowed(boolean reorderingAllowed)方法即可设置表格是否支持重 新排列功能,设为false表示不支持重新排列功能。
利用JTable类直接创建表格
本讲大纲: 1、创建表格 2、定制表格 3、操纵表格
创建表格
在JTable类中除了默认的构造方法外,还提供了如下利用指定表格列名数组和表 格数据数组创建表格的构造方法。 JTable(Object[][] rowData, Object[] columnNames)
rowData:封装表格数据的数组 columnNames:封装表格列名的数组 在使用表格时,通常将其添加到滚动面板中,然后将滚动面板添加到相应的位置。
Java中JTable的用法

Java中JT able的用法Listing A包含了一个简单示例的代码,这个示例会说明常用JTab le的行为。
用户能够更改J T able的布局、拖放它的栏,或者通过拖动标题的分隔线来改变其大小。
这些列被保存在一个String数组里:String[] columnN ames = {"Product","Numberof Boxes","Price"};数据被初始化并保存在一个二维的对象数组里:Object[][] data ={{"Apples", new Integer(5),"5.00"},{"Oranges", new Integer(3),"6.00"},{"Pears", new Integer(2),"4.00"},{"Grapes", new Integer(3),"2.00"},};JTable是使用data和columnNames构成的:JTabletable = new JTable(data, columnN ames);一、查看JTableJTable的高度和宽度按照下面的方法来设定:table.setPref erredS crolla bleVie wportS ize(new Dimension(300, 80));如果JTable的一个列或者JT able窗口自身的大小被重新确定,那么其他列会被相应的缩小或者放大,以适应新的窗口。
使用setAu toResizeMode()方法就能够控制这种行为:table.setAuto Resize Mode(int mode);mode整数字段可能的值有:AUTO_RE SIZE_O FFAUTO_RE SIZE_N EXT_CO LUMNAUTO_RE SIZE_S UBSEQU ENT_CO LUMNSAUTO_RE SIZE_L AST_CO LUMNAUTO_RE SIZE_A LL_COL UMNS二、表格的缺省值单元格内方格坐标线的缺省颜色是Colo r.gray。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JTable的入门详细介绍8-1:使用JTable组件:类层次结构图:ng.Objectponent--java.awt.Container--javax.swing.JComponent--javax.swing.JTabel在使用JTable以前,我们先看一下它的构造函数有哪些,以及应该如何使用:JTabel构造函数:JTable():建立一个新的JTables,并使用系统默认的Model.JTable(int numRows,int numColumns):建立一个具有numRows行,numColumns列的空表格,使用的是DefaultTableModel.JTable(Object[][] rowData,Object[][] columnNames):建立一个显示二维数组数据的表格,且可以显示列的名称。
JTable(TableModel dm):建立一个JTable,有默认的字段模式以及选择模式,并设置数据模式。
JTable(TableModel dm,TableColumnModel cm):建立一个JTable,设置数据模式与字段模式,并有默认的选择模式。
JTable(TableModel dm,TableColumnModel cm,ListSelectionModel sm):建立一个JTable,设置数据模式、字段模式、与选择模式。
JTable(Vector rowData,Vector columnNames):建立一个以Vector为输入来源的数据表格,可显示行的名称。
我们先以Array构造方式,说明如何利用JTable来建立一个简单的表格:import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.util.*;public class SimpleTable{public SimpleTable(){JFrame f=new JFrame();Object[][] playerInfo={{"阿呆",new Integer(66),new Integer(32),new Integer(98),new Boolean(false)},{"阿呆",new Integer(82),new Integer(69),new Integer(128),new Boolean(true)},};String[] Names={"姓名","语文","数学","总分","及格"};JTable table=new JTable(playerInfo,Names);table.setPreferredScrollableViewportSize(new Dimension(550,30));JScrollPane scrollPane=new JScrollPane(table);f.getContentPane().add(scrollPane,BorderLayout.CENTER);f.setTitle("Simple Table");f.pack();f.show();f.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}});}public static void main(String[] args){SimpleTable b=new SimpleTable();}}表格由两部份组成:分别是行标题(Column Header)与行对象(Column Object).利用JTable所提供的getTableHeader()方法取得行标题。
在这个例子中,我们将JTable放在JScrollPane中,这种做法可以将Column Header与Colmn Object完整的显示出来,因为JScrollPane会自动取得Column Header.但如果文坛读者将上面第15行去掉并修改第16行:f.getContentPane().add(table,BorderLayout.CENTER); 则运行结果你会发现Column Header 不见了。
如果你不想用JScrollPane,要解决这个问题,你必须将程序修改如下:JTable table=new JTable(p,n);table.setPreferredScrollableViewportSize(new Dimension(550,30));f.getContentPane().add(table.getTableHeader(),BorderLayout.NORTH);f.getContentPane().add(table,BorderLayout.CENTER);运行结果就会跟之前一样有行标题了.上面的运行结果就会跟发现,每个字段的宽度都是一样的,除非你自行拉曳某个列宽。
若我们想一开始就设置列宽的值,可以利用TableColumn类所提供的setPreferredWidth()方法来设置,并可利用JTable类所提供的setAutoResizeMode()方法来设置调整某个列宽时其他列宽的变化情况,我们看下面这个例子:import javax.swing.*;import javax.swing.table.*;import java.awt.*;import java.awt.event.*;import java.util.*;public class SimpleTable2{public SimpleTable2(){JFrame f=new JFrame();Object[][] p={{"阿呆",new Integer(66),new Integer(32),new Integer(98),new Boolean(false),new Boolean(false)}, {"阿呆",new Integer(82),new Integer(69),new Integer(128),new Boolean(true),new Boolean(fals e)},};String[] n={"姓名","语文","数学","总分","及格","作弊"};TableColumn column=null;JTable table=new JTable(p,n);table.setPreferredScrollableViewportSize(new Dimension(550,30));table.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);//利用JTable中的getColumnModel()方法取得TableColumnModel对象;再利用TableColumnMo del界面所定义的getColumn()方法取TableColumn对象,利用此对象的setPreferredWidth()方法就可以控制字段的宽度.for (int i=0;i<6;i++){column=table.getColumnModel().getColumn(i);if ((i%2)==0) column.setPreferredWidth(150);else column.setPreferredWidth(50);}JScrollPane scrollPane=new JScrollPane(table);f.getContentPane().add(scrollPane,BorderLayout.CENTER);f.setTitle("Simple Table");f.pack();f.show();f.setVisible(true);f.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}});}public static void main(String[] args){new SimpleTable2();}}列可调整的5个参数:AUTO_RESIZE_SUBSEQUENT_COLUMENS:当调整某一列宽时,此字段之后的所有字段列宽都会跟着一起变动。
此为系统默认值。
AUTO_RESIZE_ALL_COLUMNS:当调整某一列宽时,此表格上所有字段的列宽都会跟着一起变动。
AUTO_RESIZE_OFF:当调整某一列宽时,此表格上所有字段列宽都不会跟着改变。
AUTO_RESIZE_NEXT_COLUMN:当调整某一列宽时,此字段的下一个字段的列宽会跟着改变,其余均不会变。
AUTO_RESIZE_LAST_COLUMN:当调整某一列宽时,最后一个字段的列宽会跟着改变,其余均不会改变。
由以上范例可知,利用Swing来构造一个表格其实很简单的,只要你利用Vector或Array来作为我们表格的数据输入,将Vector或Array 的内容填入JTable中,一个基本的表格就产生了。
不过,虽然利用JTable(Object[][] rowData,Object[][] columnNames)以及JTable(Vector rowD ata,Vector columnNames)构造函数来构造构造JTable很方便,但却有些缺点。
例如上例中,我们表格中的每个字段(cell)一开始都是默认为可修改的,用户因此可能修改到我们的数据;其次,表格中每个单元(cell)中的数据类型将会被视为同一种。
在我们的例子中,数据类型皆被显示为S tring的类型,因此,原来的数据类型声明为Boolean的数据会以String的形式出现而不是以检查框(Check Box)出现。
除此之外,如果我们所要显示的数据是不固定的,或是随情况而变,例如同样是一份成绩单,老师与学生所看到的表格就不会一样,显示的外观或操作模式也许也不相同。
为了因应这些种种复杂情况,上面简单的构造方式已不宜使用,Swing提供各种Model(如:TableModel、TableColumnModel与ListSelectionModel)来解决上述的不便,以增加我们设计表格的弹性。