`
yaoweinan
  • 浏览: 137559 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

JTable 使用简要说明

    博客分类:
  • awt
 
阅读更多

JTable  是swing 包中提供显示二维表的控件,一般被包裹在一个JScrollPanel 里面显示数据。

 

DefaultTableModel 是 TableModel 的一个实现,用来操作JTable 的数据和一些属性。

譬如 修改数据时候获取到JTable 的TableModel 进行数据的删除、增加、修改,完成之后调用JTable 的invalidate 方法来更新布局,显示数据。

下面这段代码使用TableModel 实现JTable中第一列可以编辑,其他不可以编辑,其他一些设置也可以在此中重写代码实现自己需要的功能。

DefaultTableModel defaultmodel=new DefaultTableModel(0, 4){

			@Override
			public boolean isCellEditable(int row, int column) {
				if(column==0){
					return true;
				}else{
					return false;
				}
			}
			
			
		};
		
		searchedGrid =new JTable(defaultmodel) ;
 

新建好JTable之后我们就可以对它的一些列做一些设置,如下

TableColumnModel columnModel = searchedGrid.getColumnModel();
		
		TableColumn column0 = columnModel.getColumn(0);//设置第一列
		column0.setHeaderValue("");
		column0.setMaxWidth(30);
		column0.setMinWidth(30);
		column0.setResizable(false);
		column0.setCellRenderer(new  JCheckBoxRender());//设置渲染效果
		column0.setCellEditor(new DefaultCellEditor(new JCheckBoxRender()));//设置编辑效果,
这里最好和Renderer是相同,负责会出现一点怪毛病

 JCheckBoxRender.java

 

public  class JCheckBoxRender extends JCheckBox implements TableCellRenderer
	{
		private static final Border noFocusBorder = new EmptyBorder(1, 1, 1, 1);

		public JCheckBoxRender()
		{
			super();
			setHorizontalAlignment(SwingConstants.CENTER);
			setBorderPainted(true);
		}

		@Override
		public Component getTableCellRendererComponent(final JTable table, final Object value,
			final boolean isSelected, final boolean hasFocus, final int row, final int column)
		{
			setBackground(table.getBackground());

			if (hasFocus)
			{
				setBorder(UIManager.getBorder("Table.focusCellHighlightBorder"));
			}
			else
			{
				setBorder(noFocusBorder);
			}
			if(column==0){
				if(value instanceof Boolean){
					setSelected((Boolean)value);
				}
			}
			return this;
		}
	}

 当然我们也可以如下做出隔行颜色不一样的Table。

searchedGrid.setDefaultRenderer(Object.class,
				new DefaultTableCellRenderer() {
			
			@Override
			public Component getTableCellRendererComponent(JTable table, Object value,
					boolean isSelected, boolean hasFocus, int row, int column) {
				setBackground(row%2==0?Color.red:Color.green);
				return super.getTableCellRendererComponent(table, value,
		                isSelected, hasFocus, row, column);
			}
		});
 

此外,在各位仁兄在删除数据时候,尽量从后往前删除,避免错误(这个问题是由于不管是Vector还是List 删除元素是index会发生变化,导致索引失效,一般采用一直删除第一个或者反向删除)

分享到:
评论

相关推荐

    JTable使用 JTable使用

    JTable使用 JTable使用JTable使用JTable使用

    swing Jtable使用checkbox

    swing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing ...

    jtable使用方法介绍

    jtable使用方法介绍,很专业,内容详细,蛮有用。

    JAVA JTable使用实例

    在这个“JAVA JTable使用实例”中,我们将深入探讨如何有效地利用`JTable`来显示和操作数据。 首先,`JTable`是`javax.swing.JTable`类的实例,它允许我们以表格的形式展示数据。这个实例可能包括创建一个`...

    JTable的使用收藏

    JTable的使用收藏 1.JTable与TableModel 1.TableModel与JTable的关系 2.TableModel实践 3.使用JTable+TableModel展示java中的数据对象 2.JTable展示方式的美化 1.设置表格的宽度和高度 2.要显示表头 3.新加列,将...

    学会JTable的使用

    在Java Swing库中,`JTable`是一个非常重要的组件,用于在GUI应用程序中展示数据集。它是Swing的`javax....通过实践和研究提供的示例代码,你将能够熟练地在Java Swing应用中使用`JTable`来构建功能丰富的用户界面。

    jTable的使用

    深入学习jTable的使用,能够帮助开发者创建用户友好的界面,使得数据的管理与展示更加直观高效。** ### jTable的基本结构与使用 jTable由`DefaultTableModel`类驱动,它负责存储表格的数据和列信息。创建一个jTable...

    一个详细的JTable使用例子

    在这个详细的JTable使用例子中,我们主要探讨如何利用Java Swing组件JTable来展示、操作数据库中的数据。JTable是Swing GUI中用于显示和编辑表格数据的重要组件,它提供了丰富的功能,包括添加、删除和修改表格中的...

    JAVA中JTable的使用方法

    下面我们将深入探讨`JTable`的使用方法。 1. **`JTable`的基本概念** `JTable`是`javax.swing.JTable`类的实例,它继承自`JComponent`并实现了`TableModelListener`接口。`JTable`的核心在于`TableModel`,它定义...

    Java jtable使用 包括读取数据库 虚拟表模型

    Java jtable使用 包括读取数据库 虚拟表模型

    JTable使用自定义数据类型示例工程

    最后,这个"JTable使用自定义数据类型示例工程"可能包含了MWorkpace文件夹,其中可能包含了项目的源代码、编译后的类文件或相关的配置文件。这个工程提供了一个实际操作的例子,帮助开发者理解和学习如何在Swing应用...

    JTable动态刷新数据

    JTable 动态刷新数据是指在 Java Swing 应用程序中,使用 JTable 组件展示数据,并实时更新数据的过程。这种技术在很多实际应用场景中非常有用,如股票交易平台、实时监控系统、电子表格等。 首先,在使用 JTable ...

    Java JTable 使用

    在这个主题中,我们将深入探讨JTable的使用,包括它的基本概念、创建方法、与数据库的连接以及其强大的功能。 1. **基本概念** - **JTable组件**:JTable是Java AWT/Swing GUI的一部分,它继承自JComponent,用于...

    swing中JTable的简单使用

    在"swing中JTable的简单使用"这个主题中,我们将深入探讨如何在Java Swing应用中有效地使用JTable。 首先,JTable是javax.swing.JTable类的实例,它是JFrame或JPanel等容器中的一个组件。JTable通常与TableModel...

    JTable

    JTable的显示效果

    JTable 练习例子exa

    这个"JTable 练习例子exa"显然是一个实践项目,旨在帮助开发者巩固和理解`JTable`的使用。 `JTable`的基本构造函数通常需要一个`TableModel`,这是`JTable`的数据源,它可以是`DefaultTableModel`或其他自定义实现...

    jTree和jTable 双向联动

    实现jTable和jTree的双向联动,点击jTree会选中jTable单元格,点击jTable会选中jTree节点。

    Swing之JTable的详细介绍

    下面我们将深入探讨JTable的使用方法和特性。 首先,JTable的类继承结构如下: 1. `java.lang.Object` 2. `java.awt.Component` 3. `java.awt.Container` 4. `javax.swing.JComponent` 5. `javax.swing.JTable` ...

    支持ResultSet的JTable

    我们通常会创建一个自定义的`TableModel`子类,或者使用现有的如`DefaultTableModel`,并将其设置为`JTable`的模型。 5. **将ResultSet转换为TableModel**:为了让`JTable`能显示`ResultSet`的数据,我们需要将`...

    Swing JTable 常用属性

    可以直接使用 JTable 的无参构造函数创建一个空的表格控件,例如:`JTable table = new JTable();` 2. 以表头和表数据创建表格 可以使用表头和表数据创建一个 JTable,例如: ``` Object[][] cellData = {{"row1-...

Global site tag (gtag.js) - Google Analytics