Java Swing JTable 表格【15:组合列表框作为表格元素】
来源:互联网 发布:表格删除重复数据 编辑:程序博客网 时间:2024/05/23 23:44
在实际开发中,很多表格中的单元格都是以组合框作为编辑器的,组合框能带来很大的灵活性
以下贴出实例代码:
package com.acconsys.swing.chapter14;import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.DefaultCellEditor;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.table.AbstractTableModel;/** * 这段代码展示如何使用组合列表框作为表格中的元素 使得可以在列表框中选择所需要的数据,相当于输入不同数据 * * @author burns * */public class Test17 { public Test17() { JFrame f = new JFrame(); /** * 由于MyTable类继承了AbstractTableModel * 并且实现了getColumnCount(),getRowCount()、getValueAt * ()方法,因此可以通过MyTable来禅城TableModel的实体 */ MyTable17 mt = new MyTable17(); // 利用MyTable来建立JTable JTable t = new JTable(mt); // 建立一个JComboBox的对象。 JComboBox c = new JComboBox(); // 在新建的JComboBox对象里新增三个项目 c.addItem("江西省九江市"); c.addItem("浙江省杭州市"); c.addItem("安徽省合肥市"); /** * 利用JTable所提供的getTableColumnModel()方法取得TableColumnModel对象 * 再由TableColumnModel类所提供的getColumn()方法取得TableColumn对象 * TableColumn类可针对表格中的每一行做具体的设置 例如设置字段的宽度,某行的标头,设置输入较复杂的数据类型等。 * 在这里利用TableColumn类所提供的setCellEditor()方法,将JComboBox作为第二行的默认编辑组件 */ t.getColumnModel().getColumn(1).setCellEditor(new DefaultCellEditor(c)); t.setPreferredScrollableViewportSize(new Dimension(550, 30)); JScrollPane s = new JScrollPane(t); f.getContentPane().add(s, BorderLayout.CENTER); f.setTitle("ColumnModelDd"); f.pack(); f.setVisible(true); f.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); } public static void main(String[] args) { new Test17(); }}// 继承表格抽象类的表格模型class MyTable17 extends AbstractTableModel { private static final long serialVersionUID = 1L; Object[][] p = { { "王鹏", "江西省九江市", new Integer(66), new Integer(32), new Integer(98) }, { "宋兵", "浙江省杭州市", new Integer(85), new Integer(69), new Integer(154) }, }; String[] n = { "姓名", "居住地", "语文", "数学", "总分" }; @Override public int getRowCount() { return p.length; } @Override public int getColumnCount() { return n.length; } @Override public Object getValueAt(int row, int col) { return p[row][col]; } @Override public String getColumnName(int column) { return n[column]; } @Override public boolean isCellEditable(int rowIndex, int columnIndex) { return true; } @Override public void setValueAt(Object value, int rowIndex, int columnIndex) { p[rowIndex][columnIndex] = value; fireTableCellUpdated(rowIndex, columnIndex); }}
执行结果如下图:
除了组合框编辑器,这里贴上源代码,可以看到还有其他编辑器
0 0
- Java Swing JTable 表格【15:组合列表框作为表格元素】
- Java Swing JTable 表格【16:复选框JCheckBox作为表格元素】
- Java Swing JTable 表格【16:复选框JCheckBox作为表格元素】
- Java Swing编程:JTable表格
- Java Swing编程:JTable表格
- java swing Jtable 自定义 表格
- Swing编程JTable表格
- java swing sql->jtable表格 查询
- Java Swing JTable 表格【1:创建表格填充数据】
- Java Swing JTable 表格【2:创建空表格】
- Java Swing JTable 表格【4:表格模型TableModel】
- Java Swing JTable 表格【5:表格模型AbstractTableModel】
- Java Swing JTable 表格【6:表格模型DefaultTableModel】
- Java Swing JTable 表格【7:监听表格数据变化】
- Java Swing JTable 表格【8:表格使用选择器SelectionModel】
- Java Swing JTable 表格【9:表格使用渲染器DefaultTableCellRenderer】
- Java Swing JTable 表格【10:表格使用编辑器DefaultTableCellRenderer】
- Java Swing JTable 表格【11:表格使用自定义渲染器】
- RecyclerView使用详解(二)
- Training MNIST LeNet on MNIST with Caffe
- namespace
- RecyclerView使用详解(三)
- android之获取屏幕宽度、控件宽度
- Java Swing JTable 表格【15:组合列表框作为表格元素】
- 关于SYP'BLOG,关于Problem&Solutions
- 第二天,tranform ,图片浏览器,帧动画代码(我很勤劳的0.0)
- JS之浏览器对象
- Java中的BIO、NIO、AIO(NIO2)
- elasticsearch评分进阶
- 【codeforces 111C】 Petya and Spiders
- 【bzoj1560】【jsoi2009】【火星藏宝图】【dp】
- android中的回调