跟我学Java Swing GUI组件技术及应用实例——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. 渲染器渲染器用于将单元格中的值呈现为用户界面上的文本或图像。
跟我学Java Swing GUI组件技术及应用实例——JTable表格组件及应用实例

1.1跟我学Java Swing GUI组件技术及应用实例——JTable表格组件及应用实例1.1.1表格控件JTable1、JTable表格控件的主要功能JTable顾名思义就是一个将数据以表格显示的组件,它提供以行和列的方式来显示数据,并且可以拖动列。
如下示图为应用JTable表格控件所创建出的数据表格。
JTable的数据选项不仅仅是可以显示字符串,还可以显示Checkbox选择框、下拉列表框或者图片等内容。
如下为Sun 公司的Swing 教程中的TableDialogEditoDemo 应用程序的执行结果示图,在该示例的数据表格中显示Checkbox选择框、下拉列表框和图片等内容。
2、JTable类的API功能说明(1)JTable类的API功能说明如下示图为JDK API文档中对JTable类的API功能说明的相关信息。
如果需要对数据表格中的表头数据列和数据单元格中的数据列进行定制,则需要通过继承封装表头数据列JTableHeader类或者继承封装数据列的TableColumn类。
如下为JTableHeader类和TableColumn类的功能说明。
(2)表头数据列JTableHeader类的功能说明(3)数据列TableColumn类的功能说明TableColumn 类封装表示JTable中数据列的所有属性,如宽度、大小可调整性、最小和最大宽度。
3、JTable表格控件中的数据可以以多种不同的方式被选中(1)选中某一数据行(2)选中连续的多行数据行(3)选中不连续的多行数据行4、JTable类的构造函数定义可以通过JTable(Object[][] rowData, Object[] columnNames)形式的构造方法创建出数据表格组件,该JTable组件将用来显示一个二维数组rowData 中的值(它是一个行数组),其列名称为columnNames所代表的数组。
JTable类的其它形式的构造函数定义如下:5、JTable 组件中的表示表格数据的数据结构(1)TableModel接口的功能定义由于Java Swing采用了MVC的设计,所以JTable不是用来存放数据的,它只是用来作为视图显示,而真正用来存储和维护数据的是TableModel这个接口的实现类。
java-Swing控件的用法和范例

java-Swing控件的用法和范例类JTableJTable用来显示和编辑规则的二维单元表。
JTable有很多用来自定义其呈现和编辑的设施,同时提供了这些功能的默认设置,从而可轻松地设置简单表。
例如,要设置一个10行10列的表:TableModel dataModel=new AbstractTableModel(){public int getColumnCount(){return10;}public int getRowCount(){return10;}public Object getValueAt(int row,int col){return new Integer(row*col);} };JTable table=new JTable(dataModel);JScrollPane scrollpane=new JScrollPane(table);注意,如果要在单独的视图中(在JScrollPane外)使用JTable并显示表标题,则可以使用getTableHeader()获取并单独显示它。
设计使用JTable的应用程序时,要严格注意用来表示表数据的数据结构。
DefaultTableModel 是一个模型实现,它使用一个Vector来存储所有单元格的值。
该Vector由包含多个Object 的Vector组成。
除了将数据从应用程序复制到DefaultTableModel中之外,还可以TableModel接口的方法来包装数据,这样可将数据直接传递到JTable,如以上示例所示。
这通常可以提高应用程序的效率,因为模型可以自由选择最适合数据的内部表示形式。
在决定使用AbstractTableModel还是使用DefaultTableModel方面有一个好的实践经验,即在创建子类时使用AbstractTableModel作为基类,在不需要创建子类时则使用DefaultTableModel。
跟我学Java面向对象程序设计技术及应用——Java Swing GUI组件技术教学参考示例(第1部分)

1.1Java Swing GUI组件技术教学参考示例(第1部分)1.1.1模拟实现Windows资源管理器的示例1、产生一个类似Windows的资源管理器的窗口(1)SwingExplorerMainFrame,包名称为com.px1987.javaapplication.swing,并且从javax.swing.JFrame类继承(2)编程SwingExplorerMainFrame类的代码package com.px1987.javaapplication.swing;import java.awt.Cursor;import java.awt.Font;import java.awt.GraphicsConfiguration;import java.awt.HeadlessException;import java.awt.Image;import java.awt.Toolkit;import javax.swing.JFrame;public class SwingExplorerMainFrame extends JFrame {public SwingExplorerMainFrame() throws HeadlessException {super();initThisFrame();}public SwingExplorerMainFrame(GraphicsConfiguration gc) {super(gc);initThisFrame();}public SwingExplorerMainFrame(String title) throws HeadlessException { super(title);initThisFrame();}public SwingExplorerMainFrame(String title, GraphicsConfiguration gc) { super(title, gc);initThisFrame();}private void initThisFrame(){this.setTitle("利用Java Swing构造的Windows资源管理器");this.setFont(new Font("宋体", Font.PLAIN, 12));Image oneIconImage=Toolkit.getDefaultToolkit().getImage(getClass().getResource("/images/mainframe/mainframeIconImage.jpg"));this.setIconImage(oneIconImage);// this.setResizable(false);// this.setAlwaysOnTop(true);// this.setCursor(Cursor.HAND_CURSOR);// this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);this.setVisible(true);// this.setSize(400,300);this.setExtendedState(JFrame.MAXIMIZED_BOTH);this.setLocationRelativeTo(null); //居中显示}}(3)代码中的几个常量的含义1)DO_NOTHING_ON_CLOSE //什么也不做2)HIDE_ON_CLOSE //隐藏当前窗口3)DISPOSE_ON_CLOSE //隐藏当前窗口,并释放窗体所占有的其它资源4)EXIT_ON_CLOSE // 结束窗体所在的应用程序这4个常量都是JFrame类中的int类型,也可以应用下面的代码实现将鼠标消失(隐藏)的效果。
JAVA中JTABLE组件详解实例

}
public void mouseExited(MouseEvent e) { // 鼠标退出表格时的处理
}
public void mouseClicked(MouseEvent e) { // 鼠标点击时的处理
Connection con; Statement stmt; ResultSet rs; Object a[][]; JButton bt_save; int i=0; Object header[]={"学号","姓名","性别","年龄","邮箱"}; DataFrame() {
a=new Object[9][5]; try {
a[i][0]=rs.getInt(1);
a[i][1]=rs.getString(2); a[i][2]=rs.getString(3); a[i][3]=rs.getInt(4); a[i][4]=rs.getString(5); i++; } } catch(SQLException e) { System.out.println("SqlError:"+e); } table=new JTable(a,header); Container con=getContentPane();
// 添加数据到表格 tableModel.addRow(arr); }
// 更新表格 table.invalidate(); } 2) 取得表格中的数据 public List<Member> getShowMembers(){ List<Member> members=new ArrayList<Member>();
Swing-JTable用法-入门

Swing-JTable⽤法-⼊门注:本⽂为学习笔记,原⽂为,本⽂所有素材与代码均源于原⽂,可能会有部分更改。
JTable是Swing中的表格控件,它的外观如下所⽰:没错,excel或者access数据库的编辑区就是JTable这样的控件了。
创建JTableJTable提供了2个构造器可以让你⽤数据和头部直接⽣成它:JTable(Object[][] rowData, Object[] columnNames)JTable(Vector rowData, Vector columnNames)这两个构造器有⼀些特性你必须要注意:1.JTable所有的单元格都是可编辑的;2.它将所有数据都当做string来处理。
本来,JTable可以将布尔型数据⽤⼀个checkBox来进⾏展⽰,就像表1那样,在这⾥就不⾏了。
3.它要求你把所有数据都放到数组或vector中。
如果你的数据来⾃于数据库,那么专门再填充到数组实在是多此⼀举。
呐,如果你不能忍受以上限制,那么就使⽤table Model来管理你的数据吧!创建TableModel如果程序没有显式地指定tableModel,JTable会⾃动⽣成⼀个实例,这样做的副作⽤在上⾯已经说过了。
我们⾃⼰创建tableModel可以让数据得到更好的展⽰,这样做的⽅法是继承。
它已经提供了tableModel接⼝的⼤部分默认实现,在最低限度下,你只需要实现以下三个⽅法:public int getRowCount();public int getColumnCount();public Object getValueAt(int row, int column);当然,如果你的应⽤程序有其他定制化的功能,你可以⾃⼰实现的其它⽅法,⽐如:public Class getColumnClass(int c)//JTable uses this method to determine the default renderer editor for each cellpublic boolean isCellEditable(int row, int col)//Don't need to implement this method unless your table's editablepublic void setValueAt(Object value, int row, int col) //Don't need to implement this method unless your table's data can change.⽰意了如何⾃⼰创建并使⽤tableModel。
java jtable用法(一)

java jtable用法(一)Java JTable的用法JTable简介JTable是Java Swing库中的一个组件,用于显示和编辑表格数据。
它可以按照行和列的形式展示数据,并支持用户交互操作。
在本文中,我们将介绍一些JTable的常见用法和技巧。
创建JTable要创建一个JTable,我们首先需要创建一个TableModel。
TableModel是一个数据模型,用于存储和管理表格中的数据。
以下是创建JTable的步骤:1.创建一个二维数组或者一个实现TableModel接口的自定义类。
2.实例化DefaultTableModel类,并传入之前创建的数据数组或者自定义TableModel类的实例。
3.将DefaultTableModel实例传入JTable的构造方法中,创建JTable对象。
// 创建数据数组Object[][] data = {{"John", 25, "USA"},{"Alice", 30, "Canada"},{"Bob", 35, "UK"}};// 创建列名数组String[] columnNames = {"Name", "Age", "Country"};// 创建DefaultTableModelDefaultTableModel model = new DefaultTableModel(data, co lumnNames);// 创建JTableJTable table = new JTable(model);自定义JTable外观JTable提供了许多方法和属性,用于自定义表格的外观。
下面列举了几个常用的用法:设置表格行高使用方法可以设置表格的行高。
默认情况下,行高是根据表格内容的实际高度自动调整的。
跟我学Java GUI Swing组件技术及应用实例——Swing布局及事件编程实现实例

12、事件适配器(Event Adapter) (1)为什么要应用事件适配器 为简化事件编程实现以减少对不必要的事件响应方法 的重写, Swing 事件系统针对大多数事件监听器接口 定义了相应的实现类----事件适配器类,它实现了相 应监听器接口中所有的方法,但不做任何功能实现。 开发人员在定义自己的监听器类时就可以直接继承事 件适配器类,并只重写所需要的事件响应方法。
相对布局定 位的结果
绝对布局定 位的结果
4、FlowLayout布局策略及显示效果 它实现从上到下,从左到右依次摆放,每行均居中;它 是Panel的缺省布局。
5、BorderLayout布局策略 它将容器内的空间划分为东、南、西、北、中五个 方位,并指明组件所在的方位,它是Window、Dialog、 Frame的缺省布局方式。
10、事件编程的基本规则 (1)编程实现时的基本要求 事件处理的类代码要对某一类事件加以处理,则应实 现它们所对应的接口,并且给出该接口中定义的全部 事件响应方法的功能实现——重写其方法体; 然后在创建该组件时注册该事件的响应者(又称监听 器)。
public class MyFrame extends JFrame implements ActionListener{ public void actionPerFormed(ActionEvent event){ } }
(2)对事件响应者进行注册 事件源通过对特定的事件进行注册,以指定该事件的 监听器(响应者)对象——如果由当前容器组件处理事件, 则采用this。
okButton.addActionListsener(this);
(3)事件注册方法 方法名由“add+事件类型对应的监听器接口名称”组 成; 方法参数为监听器对象(实现事件响应的类的对象, 如容器组件自身响应该事件,则监听器对象应用this 代表)。 11、各种事件所对应的事件处理方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1跟我学Java Swing GUI组件技术及应用实例——JTable表格组件及应用实例1.1.1表格控件JTable1、JTable表格控件的主要功能JTable顾名思义就是一个将数据以表格显示的组件,它提供以行和列的方式来显示数据,并且可以拖动列。
如下示图为应用JTable表格控件所创建出的数据表格。
JTable的数据选项不仅仅是可以显示字符串,还可以显示Checkbox选择框、下拉列表框或者图片等内容。
如下为Sun 公司的Swing 教程中的TableDialogEditoDemo 应用程序的执行结果示图,在该示例的数据表格中显示Checkbox选择框、下拉列表框和图片等内容。
2、JTable类的API功能说明(1)JTable类的API功能说明如下示图为JDK API文档中对JTable类的API功能说明的相关信息。
如果需要对数据表格中的表头数据列和数据单元格中的数据列进行定制,则需要通过继承封装表头数据列JTableHeader类或者继承封装数据列的TableColumn类。
如下为JTableHeader类和TableColumn类的功能说明。
(2)表头数据列JTableHeader类的功能说明(3)数据列TableColumn类的功能说明TableColumn 类封装表示JTable中数据列的所有属性,如宽度、大小可调整性、最小和最大宽度。
3、JTable表格控件中的数据可以以多种不同的方式被选中(1)选中某一数据行(2)选中连续的多行数据行(3)选中不连续的多行数据行4、JTable类的构造函数定义可以通过JTable(Object[][] rowData, Object[] columnNames)形式的构造方法创建出数据表格组件,该JTable组件将用来显示一个二维数组rowData 中的值(它是一个行数组),其列名称为columnNames所代表的数组。
JTable类的其它形式的构造函数定义如下:5、JTable 组件中的表示表格数据的数据结构(1)TableModel接口的功能定义由于Java Swing采用了MVC的设计,所以JTable不是用来存放数据的,它只是用来作为视图显示,而真正用来存储和维护数据的是TableModel这个接口的实现类。
因此可以通过实现TableModel这个接口,然后在对应的实现类中定义数据表格中的行、列数据单元格。
(2)实现TableModel接口的实现类的代码示例package com.bluedream.swing;import javax.swing.event.TableModelListener;import javax.swing.table.TableModel;public class SomeOneTableModel implements TableModel {@Overridepublic int getRowCount() {return 0;}@Overridepublic int getColumnCount() {return 0;}@Overridepublic String getColumnName(int columnIndex) {return null;}@Overridepublic Class<?> getColumnClass(int columnIndex) {return null;}@Overridepublic boolean isCellEditable(int rowIndex, int columnIndex) { return false;}@Overridepublic Object getValueAt(int rowIndex, int columnIndex) {return null;}@Overridepublic void setValueAt(Object aValue, int rowIndex, int columnIndex) { }@Overridepublic void addTableModelListener(TableModelListener l) {}@Overridepublic void removeTableModelListener(TableModelListener l) {}}(3)通过继承AbstractTableModel的子类定义数据表格中的数据由于直接实现TableModel接口实现重写许多无关的功能方法,因此可以改用继承AbstractTableModel的子类的方式定义数据表格中的数据。
AbstractTableModel类的功能定义如下:在继承AbstractTableModel类的子类中只需要重写如下的三个功能方法:1)public int getRowCount();2)public int getColumnCount();3)public Object getValueAt(int row, int column);如下的代码示例是通过在继承AbstractTableModel类的子类中定义数据表格中的数据:package com.bluedream.swing;import javax.swing.table.AbstractTableModel;public class SomeOneTableModel extends AbstractTableModel {public int getColumnCount(){return 10;}public int getRowCount(){return 10;}public Object getValueAt(int row, int col){return new Integer(row*col);}}(4)应用TableModel接口的实现类或者AbstractTableModel类的子类的对象实例创建出JTable类的对象实例TableModel tableData = new SomeOneTableModel ();JTable someOneDataTable = new JTable(tableData);(5)直接定义数据表格中的行、列数据创建出数据表格在创建JTable类的对象实例时,除了可以应用TableModel接口的实现类或者AbstractTableModel类的子类的对象实例创建出JTable类的对象实例以外,也可以采用直接定义数据表格中的行、列数据的方式创建出数据表格,如下为该方法的代码示例:String tableHead[]={"第一列","第二列","第三列"};Object [][]tableData={{"第一行第一列","第一行第二列","第一行第三列"},{"第二行第一列","第二行第二列","第二行第三列"},{"第三行第一列","第三行第二列","第三行第三列"}};JTable someOneDataTable =new JTable(tableData, tableHead);6、创建出JTable对象的编程方法可以采用表格中的表头数组和数据数组创建出表格,也可以利用实现TableModel接口的类对象来实现。
如下为表格控件JTable的编程步骤:(1)创建出JTable对象可以采用表格中的表头数组和数据数组创建出表格,或者利用实现TableModel接口的类对象。
(2)再创建出一个JScrollPane对象并指示其ScrollBar的使用策略;(3)将表格控件加入JScrollPane中;(4)最后将JScrollPane对象加人到顶级容器的ContentPane中。
7、应用TableModel接口的实现类封装数据表格数据的方法创建数据表格的示例代码(1)示例程序代码package com.bluedream.swing;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.table.AbstractTableModel;import javax.swing.table.TableModel;public class JTableTest extends JFrame{public JTableTest() {super("窗口的标题条文字");/*** 应用TableModel接口的实现类封装数据表格数据的方法创建数据表格*/TableModel dataModel = new AbstractTableModel(){public int getColumnCount(){return 10;}public int getRowCount(){return 10;}public Object getValueAt(int row, int col){return new Integer(row*col);}};JTable table = new JTable(dataModel);JScrollPane scrollPane=new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);this.setContentPane(scrollPane);setSize(500,500);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public static void main(String []args){JTableTest frame=new JTableTest();}}(2)示例程序代码执行的效果8、应用封装数据表格数据的二维数组的方法创建数据表格的示例代码(1)示例程序的代码package com.bluedream.swing;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;public class JTableTest extends JFrame{String tableHead[]={"第一列","第二列","第三列"};Object [][]tableData={{"第一行第一列","第一行第二列","第一行第三列"},{"第二行第一列","第二行第二列","第二行第三列"},{"第三行第一列","第三行第二列","第三行第三列"}};public JTableTest() {super("窗口的标题条文字");JTable table=new JTable(tableData,tableHead);JScrollPane scrollPane=new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);this.setContentPane(scrollPane);setSize(500,500);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public static void main(String []args){JTableTest frame=new JTableTest();}}(2)示例程序代码的执行结果。