JAVA中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用法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显示数据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设置表格的高度宽度

//标签字体
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是指数据模型,用于表示业务数据的结构和关系,是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个人所得税代码

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用法一、概述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是一个用于向表格中添加新行的方法。
它可以在表格的末尾添加新行,也可以在指定位置添加新行。
在使用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();}}在上面的示例代码中,我们创建了一个表格对象,并向其中添加了三行数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 {