- 浏览: 194220 次
- 性别:
- 来自: 厦门
文章分类
最新评论
-
行者买刀:
qxpidt 写道楼主,我想问下,嵌套这些WEB应用后,如何操 ...
JDIC一个能够用java调用ie内核的包 -
qxpidt:
楼主,我想问下,嵌套这些WEB应用后,如何操作你登录的COOK ...
JDIC一个能够用java调用ie内核的包 -
lookforwarding:
...
java重写JSplitPane的UI,设置分隔条的颜色 -
v韧竹v:
最后那个抽象工厂模式,CarType是不是定义错了,应该abs ...
设计模式之略见一斑(工厂模式Factory) -
l7810:
这与模板模式有什么区别啊?
设计模式之略见一斑(建造模式builder)
JTable(TableModel dm, TableColumnModel cm) 构造 JTable,使用 dm 作为数据模型、cm 作为列模型和默认的选择模型对其进行初始化。
采用数据模型与列模型进行构造JTable.
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.lgh.j2se.fuxi; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Font; import java.awt.Image; import java.util.ArrayList; import java.util.List; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.AbstractTableModel; import javax.swing.table.DefaultTableColumnModel; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; /** * 测试学习jtable * @author lgh */ public class JTableTest extends JFrame { private List<User> list; public JTableTest(List<User> list) { this.list = list; init(); } private void init() { this.setSize(800, 600); this.setLocationRelativeTo(null); this.setLayout(new BorderLayout()); this.add(new JScrollPane(createJTable()), BorderLayout.CENTER); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } /** * 创建JTable * @return */ private JTable createJTable() { String[] strs = new String[]{"用户名", "密码"}; int[] widths = new int[]{100, 100}; JTable jtable = new JTable(new MyTableModel(), new MyTableColumnModel(strs, widths)); jtable.setRowHeight(50); jtable.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS); return jtable; } public static void main(String[] args) { List<User> list = new ArrayList<User>(); list.add(new User("lgh", "lgh")); list.add(new User("lgh", "lgh")); list.add(new User("lgh", "lgh")); list.add(new User("lgh", "lgh")); list.add(new User("lgh", "lgh")); list.add(new User("lgh", "lgh")); JTableTest test = new JTableTest(list); } private class ColumnCellRenderer extends JLabel implements TableCellRenderer { public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { this.setHorizontalAlignment(JLabel.CENTER); this.setFont(new Font("宋体", Font.PLAIN, 12)); this.setOpaque(true); if (row % 2 == 0) { setBackground(new Color(36, 38, 57)); } else { setBackground(new Color(42, 43, 63)); } if (isSelected) { setBackground(new Color(96, 99, 131)); } else { setBackground(Color.WHITE); } if (value == null) { setText(""); } else { if (value instanceof Image) { setIcon(new ImageIcon((Image) value)); } else { setText(value.toString()); } } return this; } } /** * 列模型 */ private class MyTableColumnModel extends DefaultTableColumnModel { private String[] strs; private int[] widths; private ColumnCellRenderer head; private ColumnCellRenderer cell; public MyTableColumnModel(String[] strs, int[] widths) { this.strs = strs; this.widths = widths; head = new ColumnCellRenderer(); cell = new ColumnCellRenderer(); init(); } private void init() { for (int i = 0; i < strs.length; i++) { TableColumn tc = new TableColumn(i); tc.setHeaderRenderer(head); tc.setCellRenderer(cell); tc.setHeaderValue(strs[i]); tc.setPreferredWidth(widths[i]); this.addColumn(tc); } } } /** * 数据模型 */ private class MyTableModel extends AbstractTableModel { /**返回当前的行数**/ public int getRowCount() { if (list != null) { return list.size(); } else { return 0; } } /**返回当前的列数**/ public int getColumnCount() { return 2; } public Object getValueAt(int rowIndex, int columnIndex) { User user = list.get(rowIndex); switch (columnIndex) { case 0: return user.getUsername(); case 1: return user.getPassword(); default: return ""; } } } }
发表评论
-
UtilCommon
2016-08-16 07:23 0aaaaaa -
Java面试题全集(上)
2016-08-14 17:23 0版权声明:本文为博 ... -
设计模式之略见一斑(Visitor访问者模式)
2010-02-25 15:02 3226在开发中,我们可能会经常碰到客户提了一新的需求,那么在现 ... -
设计模式之略见一斑(Mediator中介者模式)
2010-02-25 10:07 1881设计模式 写道 通常,面向对象的软件开发要求尽可能 ... -
设计模式之略见一斑(Chain of Responsibility责任链模式)
2010-02-24 15:00 1494设计模式 写道 面向对 ... -
设计模式之略见一斑(Observer观察者模式)
2010-02-23 17:15 2209用户通常通过调用对象的方法来收集该对象的信息。但是当这 ... -
设计模式之略见一斑(Memento备忘录模式)
2010-02-23 11:46 1463有时候,我们需要 ... -
设计模式之略见一斑(Template Method模板方法模式)
2010-02-22 21:33 1440模板方法模式就是预 ... -
设计模式之略见一斑(策略模式strategy)
2010-02-22 17:56 1968java设计模式 写道 ... -
设计模式之略见一斑(状态模式State)
2010-02-22 15:42 1695设计模式中的状态模式相对比较简单,简单的说就是对某 ... -
设计模式之略见一斑(解释器模式Interpreter)
2010-02-22 10:27 3384解释器模式是 ... -
设计模式之略见一斑(命令模式Command)
2010-02-22 09:49 1555终于把构造模式的几种设计模式写完,接下来开始写的行为模 ... -
设计模式之略见一斑(享元模式flyweight)
2010-02-10 11:39 1439flyweight模式中文解释为轻量极模式,所以顾名 ... -
设计模式之略见一斑(代理模式Proxy)
2010-02-10 11:04 1964普通对象所需要完成的任务就是通过公共接口为外界提供自己所承诺的 ... -
设计模式之略见一斑(装饰模式decorator)
2010-02-09 11:08 1820标头:(引自设计模式 ... -
设计模式之略见一斑(组合模式Composite)
2010-02-08 14:45 1498定义: 将对象以树形结构组织起来,以达成"部 ... -
设计模式之略见一斑(外观模式Facade)
2010-02-07 09:30 1390外观模式又称门面模式,它是为了给子系统中提供一个一致的界面,从 ... -
设计模式之略见一斑(桥梁模式bridge)
2010-02-06 18:04 1560桥梁模式的宗旨就是将 ... -
设计模式之略见一斑(适配器模式Adapter)
2010-02-03 10:39 1604适配器模式就是基于客户提供的接口和功能,再此基础上实 ... -
设计模式之略见一斑(原型模式Prototype)
2010-02-01 17:15 1698原型模式允许一个对象 ...
相关推荐
在Java的Swing库中,`JTable`和`JComboBox`是两个非常重要的组件,它们常被用于创建用户界面,展示数据并提供交互性。`JTable`用于展示二维表格数据,而`JComboBox`则是一种下拉选择框,可以提供多个选项供用户选择...
Java Swing中JTable渲染器与编辑器用法示例 Java Swing中JTable渲染器与编辑器用法示例是Java Swing中一个重要的组件,主要用于显示和编辑表格数据。在Java Swing中,JTable是最基本的表格组件,渲染器和编辑器是...
在Java的Swing库中,`JTable`是用于创建数据网格视图的重要组件,它允许用户以表格的形式查看和操作数据。而`JButton`则是一个常用的按钮控件,通常用于触发某些动作或事件。将`JButton`添加到`JTable`中可以为用户...
它提供了丰富的组件,其中之一就是JTable,这是一个强大的组件,用于展示二维数据集,并允许用户进行交互操作。在"swing中JTable的简单使用"这个主题中,我们将深入探讨如何在Java Swing应用中有效地使用JTable。 ...
### 中级SWING-JTable属性详解 在Java Swing框架中,`JTable`是一个非常重要的组件,用于展示表格数据。为了更好地控制表格的表现形式及功能,`JTable`提供了多种属性设置方法。以下是对给定内容中提到的一些关键...
根据给定文件的信息,本文将围绕“JTable颜色渲染代码”这一主题展开,重点解析JTable的基本操作、初始化方法及高级的颜色渲染功能。 ### JTable简介 JTable是Swing库中的一个组件,用于在Java应用程序中显示表格...
然后将这个渲染器设置给`JTable`: ```java table.setDefaultRenderer(Object.class, new MergingCellRenderer()); ``` 至于字体、字号、背景色和前景色的设置,`TableCellRenderer`同样能胜任。例如,你可以修改`...
在Java Swing库中,`JTable`是一个非常重要的组件,用于展示二维数据表格。当我们需要在`JTable`中实现更复杂的交互,比如在一个单元格内放置多个按钮时,这通常涉及到自定义`TableCellRenderer`和`TableCellEditor`...
`Swing之JTable详解.doc`可能包含了`JTable`的基本用法、构造函数、方法以及如何添加、删除和修改表格数据等内容。`2.高级Swing组件JTable应用.doc`可能进一步讨论了`JTable`的高级特性,如排序、过滤、拖放操作,...
1. **GroupableTableHeaderUI**: 这是JTable表头的自定义UI实现,负责渲染合并后的表头。UI组件是Java Swing中的核心部分,它们决定了组件的外观和行为。GroupableTableHeaderUI将处理表头的绘制逻辑,包括合并区域...
在Java的Swing库中,`JTable`是用于创建二维数据展示的组件,它类似于电子表格。在处理`JTable`时,我们有时需要使其单元格内容支持自动换行,以便更好地显示长文本。标题“JTable自动换行”正是指向这个功能,即...
1. **初始化复选框**:为JTable的某一列创建并设置CheckBox作为默认的单元格编辑器和渲染器。 2. **状态同步**:确保当用户通过界面勾选或取消复选框时,模型中的对应数据也会更新,反之亦然。 3. **事件处理**:...
import javax.swing.JTable; import javax.swing.event.TableModelEvent; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableCellRenderer; public class table implements ...
在Java Swing库中,`JTable`是一个非常重要的组件,用于在GUI应用程序中展示二维数据。它是基于模型-视图-控制器(MVC)架构设计的,使得数据操作变得灵活且易于管理。本篇文章将深入探讨`JTable`如何操作单元格、行...
除了以上的基本操作,JTable还支持其他高级特性,如监听单元格更改事件(`CellEditorListener`)、自定义单元格渲染(`TableCellRenderer`)和编辑器(`TableCellEditor`),以及表格选择和排序等。这些特性使得...
1. **自定义渲染器和编辑器**:可能提供更灵活的单元格渲染和编辑机制,使得表格中的数据显示和编辑更加多样化。 2. **数据绑定**:可能支持与JavaBeans、POJO或其他数据模型的直接绑定,简化数据管理。 3. **性能...
- `JTable`是基于模型-视图-控制器(MVC)设计模式的,其中数据存储在`TableModel`中,`JTable`作为视图负责渲染数据。 - 用于展示结构化的数据,例如数据库中的记录或任何其他需要以行列形式展示的数据。 2. **...
在Java Swing库中,`JTable`是一个非常重要的组件,用于展示二维数据集,通常用于创建用户界面中的表格。在一些复杂的应用场景中,我们可能需要实现更高级的功能,如复杂的表头和跨行列表体。这个主题主要关注如何...
在Java Swing中,`JTable` 是用于展示二维数据的组件,它允许用户查看和编辑数据。本示例探讨如何在`JTable`中添加`CheckBox`,并实现表头的`JCheckBox`全选联动功能。这在需要用户进行多选操作的界面中非常常见,...