JAVA中DEFAULTTABLEMODEL的用法
- 格式:pdf
- 大小:65.48 KB
- 文档页数:4
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用法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显示数据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中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 -。
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用法一、概述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是一个用于向表格中添加新行的方法。
它可以在表格的末尾添加新行,也可以在指定位置添加新行。
在使用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是基于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是要插入的位置。