JAVA中DEFAULTTABLEMODEL的用法

合集下载

defaulttablemodel用法

defaulttablemodel用法

defaulttablemodel用法Java Swing中的JTable是一个非常有用的组件,用于展示和编辑表格数据。

然而,在JTable中显示数据时,我们需要使用TableModel对象来存储和管理数据。

其中,DefaultTableModel是JTable默认使用的TableModel实现类之一。

DefaultTableModel提供了一组方法来管理表格数据。

它使用Vector来存储数据,这使得它非常灵活和易于使用。

DefaultT ableModel允许用户创建一个空的TableModel,以便稍后将数据添加到其中。

用户也可以创建包含数据的TableModel。

一旦TableModel创建完成,它可以被设置为JTable的数据源。

DefaultTableModel的构造方法需要传入两个参数:列名(Vector对象)和行数(int类型)。

当设置数据时,它可以直接修改Vector对象的数据。

在修改数据后,可以调用fireTableDataChanged()方法来通知JTable更新数据。

示例代码:DefaultTableModel model = new DefaultTableModel();设置列名Vector<String> columnNames = new Vector<String>(); columnNames.add("ID");columnNames.add("Name");model.setColumnIdentifiers(columnNames);添加数据行Vector<Object> rowData = new Vector<Object>();rowData.add(1);rowData.add("张三");model.addRow(rowData);设置数据源JTable table = new JT able(model);除了设置列名和数据,DefaultTableModel还提供了一些其他的方法来管理数据。

defaultlistmodel用法

defaultlistmodel用法

defaultlistmodel用法1. 概述DefaultListModel是Swing提供的一个类,用于管理列表组件中的数据。

它实现了ListModel接口,并提供了一些便捷的方法来管理和操作列表数据。

本文将详细介绍DefaultListModel的用法。

2. 创建DefaultListModel对象下面是创建一个DefaultListModel对象的示例代码:DefaultListModel<String> model = new DefaultListModel<>();此处创建了一个泛型为String的DefaultListModel对象。

我们可以根据需要选择其他数据类型。

3. 添加元素DefaultListModel提供了多个方法来添加元素。

下面是几个常用的方法: - addElement(E element):向列表末尾添加一个元素。

- add(int index, E element):在指定位置插入一个元素。

- addAll(Collection<? extends E> elements):将一个集合中的所有元素添加到列表中。

- addAll(int index, Collection<? extends E> elements):将一个集合中的所有元素插入到指定位置。

示例代码:model.addElement("Apple");model.add(0, "Banana");List<String> fruits = new ArrayList<>();fruits.add("Orange");fruits.add("Mango");model.addAll(fruits);model.addAll(2, Arrays.asList("Cherry", "Grape"));4. 移除元素DefaultListModel也提供了多个方法来移除元素。

java 通过JTable显示数据

java  通过JTable显示数据

java 通过JTable显示数据Swing中的JTable类为显示大块数据提供了一种简单的机制。

JTable有很多方法用于数据的生成和编辑,其中的很多方法还可以自定义,从而更进一步增强其功能。

在使用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为输入来源的数据表格,可显示行的名称。

在构建JTable对象之后,可以通过一些方法来设置数据显示的样式,常见的方法如下。

1.设置JTable表格大小如果JTable的一个列或者JTable窗口的大小被重新设置后,那么其他列会被相应的缩小或者放大,以适应新的窗口。

使用setAutoResizeMode( )方法就能够控制这LUMN、AUTO_RESIZE_SUBSEQUENT_COLUMNS、AUTO_RESIZE_LAST_COL UMN和AUTO_RESIZE_ALL_COLUMNS。

java设置表格的高度宽度

java设置表格的高度宽度
label1.setHorizontalAlignment(SwingConstants.CENTER);
//标签字体
label1.setFont(newFont("微软雅黑", Font.PLAIN, 16));
//面板添加标签
panel1.add(label1, BorderLayout.NORTH);
}
EventQueue.invokeLater(newRunnable() {
publicvoidrun() {
try{
ResizeTableTest frame =newResizeTableTest();
frame.setVisible(true);
}catch(Exception e) {
e.printStackTrace();
//面板2
JPanel panel2 =newJPanel();
//容器添加面板
contentPane.adanel2.setLayout(newBorderLayout(0, 0));
//标签
JLabel label2 =newJLabel("自定义表格");
//表格行高
table2.setRowHeight(35);
//构造JTableHeader,使用cm作为列模型对其进行初始化。
// table2.getTableHeader()返回此JTable所使用的tableHeader
JTableHeader header =table2.getTableHeader();
//增长行
model.addRow(newObject[] {"1","Java"});

java中model的用法

java中model的用法

java中model的用法
Java中的Model是指数据模型,用于表示业务数据的结构和关系,是MVC模式中的M(模型)。

在Java中,通常被用来表示数据库中的数据、配置信息、业务逻辑等。

Model可以用来存储和管理数据,同时也可以提供一些数据操作方法,例如增删改查等。

在Java中,Model通常采用面向对象的方式来实现,其实现方式包括POJO、DTO、VO等。

POJO是指Plain Old Java Object,即普通的Java对象,通常用于表示数据库中的数据。

DTO是指Data Transfer Object,即数据传输对象,通常用于在业务层和视图层之间传递数据。

VO是指Value Object,即值对象,通常用于表示一些不可变的业务对象。

在使用Model的过程中,需要注意以下几点:
1. Model应该尽量简洁,只包含必要的属性和方法。

2. Model应该与业务逻辑分离,不应该包含过多的业务代码。

3. Model应该遵循面向对象的设计原则,例如单一职责、开闭原则等。

4. Model的属性应该尽量使用封装,避免对外暴露内部状态。

总之,Java中的Model是一个非常重要的概念,它是开发业务应用程序的基础。

只有充分理解和掌握Model的用法,才能写出高质量的代码,提高开发效率和程序可维护性。

- 1 -。

java个人所得税代码

java个人所得税代码

import java.awt.event.*;import java.io.*;import javax.swing.*;import javax.swing.table.DefaultTableModel;public class shuilv extends JFrame implements ActionListener{private JTextField text_money;private JButton button;private JTable table;Object datas[][]=new Object[0][4];String titles[]={"收入总额(元)","适用税率(%)","速算扣除(元)","应纳利息(元)"};String[]header=titles;String ss[]=new String[4];JScrollPane js;DefaultTableModel model;private int i;public shuilv(){super("个人所得税计算");this.setBounds(400,200,500,200);this.setResizable(false);this.setBackground(java.awt.Color.lightGray);this.setDefaultCloseOperation(EXIT_ON_CLOSE);JPanel panel = new JPanel();this.getContentPane().add(panel, "North");panel.add(new JLabel("收入总额"));text_money = new JTextField("0",6);panel.add(text_money);panel.add(new JLabel("元"));button = new JButton("计算");panel.add(button);button.addActionListener(this);table=new JTable(datas, titles);js=new JScrollPane(table);this.getContentPane().add(js);this.setVisible(true);}public void updateTable(Object[] objTable){model.addRow(objTable);//给model对象添加数据行table.setModel(model);//把model作为JTable的数据来源}public void actionPerformed(ActionEvent e) //单击事件处理方法{model=new DefaultTableModel(header,0);double money=Double.parseDouble(""+text_money.getText()); //本金余额FileReader fin=null;BufferedReader bin=null;try{fin=new FileReader("data.txt"); //bin=new BufferedReader(fin);}catch(Exception ex){System.out.println("fin "+fin);}double del[]=new double[7]; //月还本金double rate[]=new double[7];double mon[]=new double[7];String dels=null;String rates=null;String mons=null;try{dels=bin.readLine();rates=bin.readLine();mons=bin.readLine();System.out.println("dels "+dels.length());bin.close();fin.close();}catch(Exception ex){}String aa="";int ii=0;for(int i=0;i<dels.length();i++){if(dels.charAt(i)!=',')aa+=dels.charAt(i);else{del[ii]=Double.parseDouble(aa);ii++;aa="";}}ii=0;aa="";for(int i=0;i<rates.length();i++){if(rates.charAt(i)!=',')aa+=rates.charAt(i);else{rate[ii]=Double.parseDouble(aa);ii++;aa="";}}ii=0;aa="";for(int i=0;i<mons.length();i++){if(mons.charAt(i)!=',')aa+=mons.charAt(i);else{mon[ii]=Double.parseDouble(aa);ii++;aa="";}}for(int i=0;i<7;i++){System.out.println(del[i]+" "+rate[i]);}ss[0] = String.format("%9.2f",money);for(int j=0;j<=5;j++)if(mon[j]<=money&&money<=mon[j+1]){i=j;break; //找到就可以退出循环了}/* if(mon[0]<=money&&money<=mon[1]){i=0;}if(mon[1]<money&&money<mon[2]){i=1;}if(mon[2]<money&&money<mon[3]){i=2;}if(mon[3]<money&&money<=mon[4]){i=3;}if(mon[4]<money&&money<=mon[5]){i=4;}if(mon[5]<money&&money<=mon[6]){i=5;} */if(mon[6]<money){i=6;}ss[1] = String.format("%9.2f",rate[i]);ss[2] = String.format("%9.2f",del[i]);ss[3] = String.format("%9.2f",money*rate[i]*0.01-del[i]);this.updateTable(ss);/* try{FileWriter fout=new FileWriter("data.txt");fout.write("0,105,555,1005,2755,5505,13505,\r\n");fout.write("3,10,20,25,30,35,45,\r\n");fout.close();}catch(Exception ex){}*/}public static void main(String args[]){new shuilv();}}。

java 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的一些常用用法和详细讲解。

java中tbaddrow的用法

java中tbaddrow的用法

java中tbaddrow的用法Java中的tbaddrow是一个用于向表格中添加新行的方法。

它可以在表格的末尾添加新行,也可以在指定位置添加新行。

在使用tbaddrow方法之前,需要先创建一个表格对象,并确定表格的列数和行数。

使用tbaddrow方法添加新行的基本语法如下:table.tbaddrow(row, data);其中,table是表格对象的名称,row是要添加的新行的位置,data 是要添加的新行的数据。

如果要在表格的末尾添加新行,可以将row 的值设置为-1。

下面是一个示例代码,演示了如何使用tbaddrow方法向表格中添加新行:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class TableDemo extends JFrame {private JTable table;private JScrollPane scrollPane;private Object[][] data;private String[] columnNames = {"姓名", "年龄", "性别"};public TableDemo() {setTitle("表格演示");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setSize(300, 200);setLocationRelativeTo(null);data = new Object[][]{{"张三", 20, "男"}, {"李四", 22, "女"}, {"王五", 25, "男"}};table = new JTable(data, columnNames);scrollPane = new JScrollPane(table);add(scrollPane);JButton addButton = new JButton("添加新行");addButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {Object[] newRow = {"赵六", 28, "女"};((DefaultTableModel)table.getModel()).addRow(newRow);}});add(addButton, BorderLayout.SOUTH);setVisible(true);}public static void main(String[] args) {new TableDemo();}}在上面的示例代码中,我们创建了一个表格对象,并向其中添加了三行数据。

swing jxtreetable用法

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是要插入的位置。

DefaultListModel

DefaultListModel

字段摘要
&nbsp;
从类 javax.swing.AbstractListModel 继承的字段
listenerList
&nbsp;
构造方法摘要
DefaultListModel()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;int
indexOf(Object&nbsp;elem)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;搜索 elem 的第一次出现。
&nbsp;int
indexOf(Object&nbsp;elem,
int&nbsp;index)
int&nbsp;index)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;将此列表指定 index 处的组件设置为指定的对象。
&nbsp;void
setSize(int&nbsp;newSize)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;设置此列表的大小。

javajtable用法

javajtable用法

javajtable用法1. 创建JTable对象:要创建一个JTable对象,可使用其构造函数之一、以下是一个示例:JTable table = new JTable(;2.设置表头:表格的第一行通常称为表头,用于显示列名。

要设置表头,可以使用JTable的getTableHeader(方法和setDefaultRenderer(方法。

下面是一个示例:JTableHeader tableHeader = table.getTableHeader(;tableHeader.setDefaultRenderer(new MyTableHeaderRenderer(); 3.添加到容器:将JTable添加到显示表格的容器中。

例如,将它添加到一个面板中:JPanel panel = new JPanel(;panel.add(table);4.设置数据模型:JTable需要一个数据模型来存储和管理表格数据。

默认情况下,JTable使用DefaultTableModel作为其数据模型。

以下是设置数据模型的示例:DefaultTableModel model = new DefaultTableModel(;table.setModel(model);5.填充表格数据:可以通过添加行和列的方式来填充表格数据。

以下是一个示例:model.addRow(new Object[]{"John Doe", "24", "Male"});model.addRow(new Object[]{"Jane Smith", "30", "Female"}); 6.选择行和列:可以使用JTable的setRowSelectionAllowed(和setColumnSelectionAllowed(方法来允许或禁止行或列的选择。

Java中DefaultTableModel的用法

Java中DefaultTableModel的用法

我们曾提到过DefaultTableModel类,并说明了此类是继承AbstractTableModel 抽象类而来,且实现了getColumnCount(),getRowCount()与getValueAt()3个方法。

因此在实际的使用上,DefaultTableModel比AbstractTableModel要来得简单许多,也较常被拿来使用DefaultTableModel内部使用Vector来使用表格的数据,若佻所要显示的表格格式是比较单纯的变化,笔者建议使用DefaultTableModel类会来得方便也简单许多。

若佻所要显示的数据模式非常复杂,例如我们所举的成绩表格外加学生选课信息等,像这类的表格通常显示的信息会因人面异,因此使用AbstractTableModel会比较容易设计些。

下面是DefaultTableModel的构造函数:DefaultTableModel():建立一个DefaultTableModel,里面没有任何数据. DefaultTableModel(int numRows,int numColumns):建立一个指定行列数的DefaultTableModel.DefaultTableModel(Object[][] data,Object[] columnNames):建立一个DefaultTableModel输入数据格式为Object Array.系统会自动调用setDataVector()方法来设置数据。

DefaultTableModel(Object[] columnNames,int numRows):建立一个DefaultTableModel,并具有Column Header名称与行数信息。

DefaultTableModel(Vector columnNames,int numRows):建立一个DefaultTableModel,并具有column Header名称与行数信息。

java 单元格内边距

java 单元格内边距

java 单元格内边距摘要:1. Java单元格内边距的概念2.设置单元格内边距的方法3.单元格内边距的应用场景4.实例演示正文:在Java编程中,单元格内边距是指表格单元格内容与单元格边框之间的距离。

设置单元格内边距可以提高表格的可读性和实用性。

本文将介绍如何在Java中设置单元格内边距,以及应用场景和实例演示。

一、Java单元格内边距的概念在Java中,单元格内边距通常通过表格对象的`setCellPadding()`方法进行设置。

单元格内边距包括上、右、下、左边距,分别用像素值表示。

以下是一个设置单元格内边距的示例:```javaimport javax.swing.JFrame;import javax.swing.JT able;import javax.swing.table.DefaultTableModel;public class CellPaddingExample extends JFrame {public CellPaddingExample() {DefaultTableModel tableModel = newDefaultTableModel(new String[]{"姓名", "年龄", "性别"}, 0);JTable table = new JTable(tableModel);table.setCellPadding(5, 10, 5, 10); // 设置单元格内边距setTitle("Java单元格内边距示例");setSize(300, 200);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);getContentPane().add(table);}public static void main(String[] args) {SwingUtilities.invokeLater(new Runnable() {@Overridepublic void run() {new CellPaddingExample().setVisible(true);}});}}```二、设置单元格内边距的方法在Java中,可以通过以下步骤设置单元格内边距:1.创建一个表格对象,如JTable。

java jtable用法(一)

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提供了许多方法和属性,用于自定义表格的外观。

下面列举了几个常用的用法:设置表格行高使用方法可以设置表格的行高。

默认情况下,行高是根据表格内容的实际高度自动调整的。

defaultlistmodel用法

defaultlistmodel用法

defaultlistmodel用法DefaultListModel是Java Swing框架下的一种列表模型,它可以方便地管理列表对象。

在使用Swing框架搭建GUI界面时,使用DefaultListModel可以将数据与界面分离,达到更好的代码结构和可维护性。

下面将介绍DefaultListModel的用法,包括如何创建、添加和删除列表项、如何获取和设置列表项内容等。

1. 创建DefaultListModel对象创建DefaultListModel对象很简单,使用默认构造函数即可:```javaDefaultListModel<String> listModel = new DefaultListModel<>(); ```2. 添加和删除列表项添加列表项的方法是调用add方法:```javalistModel.add(0, "hello");```该方法将“hello”添加到列表的第一个位置。

同样地,可以使用remove方法删除指定位置的列表项:```javalistModel.remove(0);```该方法将列表的第一个位置的列表项删除。

3. 获取和设置列表项内容获取列表项内容可以使用get方法:```javaString item = listModel.get(0);```该方法将返回列表的第一个位置的列表项内容。

设置列表项内容可以使用set方法:```javalistModel.set(0, "world");```该方法将列表的第一个位置的列表项内容设置为“world”。

4. 遍历列表项遍历列表项可以使用iterator方法返回一个迭代器,然后使用while循环遍历:```javaIterator<String> iter = listModel.iterator();while (iter.hasNext()) {String item = iter.next();System.out.println(item);}```该代码片段将遍历列表项并打印出来。

java celltype用法

java celltype用法

java celltype用法Java的celltype用法在Java中,celltype是一个非常有用的数据类型。

它可以通过javax.swing.table包编程来访问和使用。

celltype是一个接口,它定义了表格单元格中的数据的类型。

这个接口有三个实现类,分别是:1. DefaultCellEditor2. DefaultTableColumnModel3. DefaultTableModel在默认的表格编辑器(DefaultCellEditor)中,celltype的作用是确定用户可以输入哪些数据类型并进行限制。

在默认的表格列模型(DefaultTableColumnModel)中,celltype的作用是确定该列的数据类型。

在默认表格模型(DefaultTableModel)中,celltype的作用是定义单元格中的数据类型。

在实践中,我们可以通过自定义celltype来扩展Java表格的功能。

自定义celltype可以让我们在表格中使用任何自定义数据类型,而不受默认数据类型的限制。

下面是一个自定义celltype的示例:我们要在表格中显示一个简单的数据类型,名为Person,它包含一个名字和一个年龄属性。

首先,我们需要创建一个自定义的celltype类,继承AbstractCellEditor类和TableCellEditor接口。

然后,我们需要实现getCellEditorValue和getTableCellEditorComponent方法。

这两个方法分别用于从单元格中获取值和将值写回单元格。

public class PersonCellEditor extends AbstractCellEditor implements TableCellEditor {private Person person;private JTextField textField;public PersonCellEditor() {textField = new JTextField();textField.setBorder(BorderFactory.createEmptyBorder());}public Object getCellEditorValue() {person.setName(textField.getText());//从文本框中读取名字并设置给person对象return person;}public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {if (value != null) {person = (Person) value;//根据传入的value更新person 对象textField.setText(person.getName());}return textField;}}然后,我们可以在表格中使用自定义celltype,如下所示:JTable table = new JTable(new PersonTableModel()); TableColumn column =table.getColumnModel().getColumn(0);//获取第一列column.setCellEditor(new PersonCellEditor());//设置celltype在这个示例中,我们将自定义的celltype设置为第一列,然后将PersonTableModel设置为表格模型。

java中table的用法

java中table的用法

在 Java 中,通常使用 JTable 类来创建和操作表格(Table)。

JTable 是 Swing 组件库中的一部分,它允许你在界面中展示和编辑表格数据。

以下是 JTable 的基本用法:1. 创建 JTable 对象:你可以通过创建 JTable 对象来表示一个表格。

通常,你需要提供表格的数据模型(TableModel)来指定表格中的数据内容。

2. 设置数据模型:数据模型负责存储和管理表格中的数据。

你可以使用默认的数据模型 DefaultTableModel,也可以自定义实现 TableModel 接口的数据模型。

3. 显示表格:将 JTable 放置在界面中的某个容器中,并确保它能够被用户看到。

4. 自定义表格外观和行为:你可以对 JTable 进行各种自定义,包括调整列宽、行高,设置表头,添加排序和过滤功能等。

下面是一个简单的示例代码,演示了如何在 Java 中创建一个基本的 JTable:```javaimport javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.table.DefaultTableModel;public class Main {public static void main(String[] args) {JFrame frame = new JFrame("JTable Example");// 表格数据Object[][] data = {{"John", 25, "Male"},{"Amy", 30, "Female"},{"Bob", 20, "Male"}};// 表头String[] columns = {"Name", "Age", "Gender"};// 创建数据模型DefaultTableModel model = new DefaultTableModel(data, columns);// 创建表格JTable table = new JTable(model);// 将表格放入滚动窗格中,并添加到界面中JScrollPane scrollPane = new JScrollPane(table);frame.add(scrollPane);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.pack();frame.setVisible(true);}}```上述示例中,我们创建了一个简单的 JTable,并将其放置在一个 JFrame 中。

JTable

JTable
for (int column = 0; column < columnNames.length; column++) {
columnNameV.add(columnNames[column]);
}
Vector<Vector<String>> tableValueV = new Vector<>();
frame.setVisible(true);
}
public ExampleFrame_02() {
super();
setTitle("创建不可滚动的表格");
setBounds(100, 100, 240, 150);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
import java.awt.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
public class ExampleFrame_03 extends JFrame {
/**
*
*/
/**
*
*/
private static final long serialVersionUID = 1L;
public static void main(String args[]) {
ExampleFrame_02 frame = new ExampleFrame_02();
// 创建显示表格的滚动面板
JScrollPane scrollPane = new JScrollPane(table);
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
} if(e.getActionCommand().equals("删除行")) {
int rowcount = defaultModel.getRowCount()-1; //getRowCount
返回行数,
rowcount<0 代表已经没有任何行了。
if(rowcount >= 0) { defaultModel.removeRow(rowcount); defaultModel.setRowCount(rowcount); //删除行比较简单,只要用 DefaultTableModel 的 removeRow()方法即可。删 除 //行完毕后必须重新设置列数,也就是使用 DefaultTableModel 的 setRowCount()方法来设置。 } } table.revalidate(); } public static void main(String args[]) { new AddRemoveCells();
我们曾提到过DefaultTableModel 类,并说明了此类是继承 AbstractTableModel
抽象类而来,且实现了 getColumnCount(),getRowCount()与 getValueAt()3 个方法。因此在实际的使用上,DefaultTableModel 比 AbstractTableModel 要 来得简单许多,也较常被拿来使用 DefaultTableModel 内部使用 Vector 来使用 表格的数据,若佻所要显示的表格格式是比较单纯的变化,笔者建议使用 DefaultTableModel 类会来得方便也简单许多。若佻所要显示的数据模式非常复 杂, 例如我们所举的成绩表格外加学生选课信息等,像这类的表格通常显示的信息会 因人面异,因此使用 AbstractTableModel 会比较容易设计些。
JTable table = null;
DefaultTableModel defaultModel = null;pubLeabharlann ic AddRemoveCells()
{ JFrame f = new JFrame(); String[] name = {"字段 1","字段 2","字段 3","字段 4","字
panel.add(b); b.addActionListener(this); b = new JButton("删除行"); panel.add(b);
b.addActionListener(this); b = new JButton("删除列"); panel.add(b); b.addActionListener(this); Container contentPane = f.getContentPane(); contentPane.add(panel, BorderLayout.NORTH); contentPane.add(s, BorderLayout.CENTER); f.setTitle("AddRemoveCells"); f.pack(); f.setVisible(true); f.addWindowListener(new WindowAdapter() {
段 5"}; String[][] data = new String[5][5];
int value =1; for(int i=0; i<data.length; i++)
{ for(int j=0; j<data.length j++) data[j] = String.valueOf(value++);
} defaultModel = new DefaultTableModel(data,name);
table=new JTable(defaultModel); table.setPreferredScrollableViewportSize(new Dimension(400, 80));
JScrollPane s = new JScrollPane(table); JPanel panel = new JPanel(); JButton b = new JButton("增加行"); panel.add(b); b.addActionListener(this); b = new JButton("增加列");
public void windowClosing(WindowEvent e) { System.exit(0); } }); } /*要删除列必须使用 TableColumnModel 界 面 定 义 的 removeColumn()方 法。* 因此我闪先由 JTable 类的 getColumnModel()方法取*TableColumnModel 对象, 再由 TableColumnModel 的 getColumn() * 方法取得要删除列的 TableColumn.此 TableColumn 对象当作是*removeColumn() 的参数。删除此列完毕后必须重新设置列数,*也就是使用 DefaultTableModel 的 setColumnCount()方法来设置。 */ public void actionPerformed(ActionEvent e) { if(e.getActionCommand().equals("增加列")) defaultModel.addColumn("增加列"); if(e.getActionCommand().equals("增加行")) defaultModel.addRow(new Vector()); if(e.getActionCommand().equals("删除列")) { int columncount = defaultModel.getColumnCount()-1; if(columncount >= 0)//若 columncount<0 代表已经没有任何列了。 { TableColumnModel columnModel = table.getColumnModel(); TableColumn tableColumn = columnModel.getColumn(columncount); columnModel.removeColumn(tableColumn); defaultModel.setColumnCount(columncount);
} }
下面是DefaultTableModel 的构造函数: DefaultTableModel():建立一个 DefaultTableModel,里面没有任何数据. DefaultTableModel(int numRows,int numColumns):建立一个指定行列数的 DefaultTableModel. DefaultTableModel(Object[][] data,Object[] columnNames): 建 立 一 个 DefaultTableModel 输入数据格式为 Object Array.系统会自动调用 setDataVector()方法来设置数据。 DefaultTableModel(Object[] columnNames,int numRows):建立一个 DefaultTableModel,并具有 Column Header 名称与行数信息。 DefaultTableModel(Vector columnNames,int numRows): 建立一个 DefaultTableModel,并具有 column Header 名称与行数信息。 DefaultTableModel(Vector data,Vector columnNames): 建立一个 DefaultTableModel,输入数据格式为 Vector.系统会自动调用 setDataVector()方法来设置数据。 DefaultTableModel 类提供相当多好用的方法,如之前我们谈论过的 getColumnCount(),getRowCount(),getValueAt(),isCellEditable() setValueAt()等方法,均可直接使用。且 DefaultTableModel 也提供了 addColumn()与 addRow()等方法,可让我们随时增加表格的数据。 下面我们就举一个动态增加表格字段的例子: import java.awt.*; import java.awt.event.*; import java.util.Vector; import javax.swing.*; import javax.swing.event.*; import javax.swing.table.*; public class AddRemoveCells implements ActionListener {
相关文档
最新文档