Swing表格自定义JTable (表格可编辑)

转载 2013年12月02日 09:56:20
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->import java.awt.BorderLayout;
import java.awt.Color;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableCellRenderer;
public class JTableDefineTest extends JFrame{

    public JTableDefineTest()
    {
        super();
        setTitle("表格");
        setBounds(100,100,500,500);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JScrollPane scrollPane = new JScrollPane();   //支持滚动
        getContentPane().add(scrollPane,BorderLayout.CENTER);
        String[] columnNames = {"A","B","C","D","E","F","G"};
        Vector columnNameV = new Vector();    //获得表头
        for(int column = 0;column<columnNames.length;column++)
        {
            columnNameV.add(columnNames[column]);
        }
        Vector tableValueV = new Vector();
        for(int row = 1;row<21;row++)    //获得数据
        {
            Vector rowV = new Vector();
            for(int column = 0;column<columnNames.length;column++)
            {
                rowV.add(columnNames[column]+row);  //数据
            }
            tableValueV.add(rowV);
        }
        JTable table = new MyTable(tableValueV,columnNameV);   //自定义的表格
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);  //关闭表格列的自动调整功能。
        table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);   //单选
        table.setSelectionBackground(Color.YELLOW);
        table.setSelectionForeground(Color.RED);
        table.setRowHeight(30);
        scrollPane.setViewportView(table);   //支持滚动
        
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        JTableDefineTest jTableDefineTest= new JTableDefineTest();
        jTableDefineTest.setVisible(true);
    }

}

class MyTable extends JTable    //实现自定义类
{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    
    public MyTable()
    {
        
    }
    public MyTable(Vector rowData ,Vector columnNames)
    {
        super(rowData,columnNames);
    }
    
    /**
     * @Override
     */
    public JTableHeader getTableHeader()
    {
        JTableHeader tableHeader = super.getTableHeader();
        tableHeader.setReorderingAllowed(false);   //设置表格列不可重排
        DefaultTableCellRenderer hr =(DefaultTableCellRenderer)tableHeader.getDefaultRenderer();  //获得表格头的单元格对象
        hr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);  //列名居中
        return tableHeader;
        
    }
    /**
     * @Override
     */
    public TableCellRenderer getDefaultRenderer(Class<?>columnClass)
    {
        DefaultTableCellRenderer cr =(DefaultTableCellRenderer)super.getDefaultRenderer(columnClass);
        cr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);  //单元格内容居中
        return cr;
    }
    /**
     * @Override
     */
    public boolean isCellEditable(int row,int column)
    {
        return false;   //单元格不可修改
    }
}

SWT的Table表格可编辑单元格

final Table table = new Table(parent, SWT.NONE | SWT.FULL_SELECTION);   final GridData gd = new Gr...
  • sidihuo
  • sidihuo
  • 2014年09月03日 15:56
  • 5403

JAVA设置JTable表格的可编辑性

有时候,我们需要设置表格

swing jtable 单元编辑事件

转自:http://www.xuebuyuan.com/672630.html swing jtable 单元编辑事件(包括通过键盘获取焦点后编辑和鼠标双击后进入编辑状态) import ...

jTable设置单元格不可编辑

网上找了几个方法,都是说要继承JTable类,然后重载isCellEditable方法,再用这个类实现。感觉有些烦琐。后又看到又用内部类实现的。这才感觉比较方便。然后,我也需要使用TableModel...

SWING学习:JTable实现自定义的编辑单元格 (1)

   通常我们需要为不同单元格实现不同的功能,如某单元格为下拉框、选择框、弹出框等。我们可以写成一个通用的控件。下面是一个弹出颜色选择框的实例代码:package utils;import java....
  • danning
  • danning
  • 2007年04月02日 21:23
  • 2080

JTable怎样控制某一列、某一单元格允许或不允许被编辑

原文链接:http://blog.csdn.net/one_and_only4711/article/details/6594896 网上有很多关于怎样实现JTable不能被编辑的文章,因为如果...
  • jarniyy
  • jarniyy
  • 2016年08月01日 00:15
  • 1301

Java使用自定义的tableModel,设置可编辑方式

package com.han; import java.awt.BorderLayout; import java.util.Vector; import javax.swing.JFrame;...

Java Swing JTable 表格【1:创建表格填充数据】

JTable是用来处理数据在表格的视图显示,但是并不包含数据或缓存数据,同时JTable默认也允许用户去编辑表格数据。 JTable在Java API的位置如下:JTable的构造方法如下: !...

Swing设置单元格不可编辑

创建table时使用 JTable table=new MyTable(rowData,columnname)强调内容先实现自己的表格类import java.util.Vector;import j...
  • cat_pp
  • cat_pp
  • 2016年04月07日 11:33
  • 898

Swing之JTable篇在表单元格中增加文本输入框

在JTable单元个中增加文本输入框是经常遇到的,一般在开发中会遇到在表格中对输入做控制就可以用到这种方法来实现 实现方式: 重写:TableCellRenderer接口 Componen...
  • SJF0115
  • SJF0115
  • 2011年11月19日 19:46
  • 2016
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Swing表格自定义JTable (表格可编辑)
举报原因:
原因补充:

(最多只允许输入30个字)