public class JTableKnow_A extends JFrame
{
public JTableKnow_A()
{
this.setBounds(300, 100, 400, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /****************************************************/
//实例化表格的第一种方式
JTable jTable01 = new JTable(3,4);
// this.add(jTable01);
//实例化表格的第二种方式
Object[][] tableData = new Object[3][4];
tableData[0] = new Object[]{"1-1","1-2","1-3","1-4"};
tableData[1] = new Object[]{"2-1","2-2","2-3","2-4"};
tableData[2] = new Object[]{"3-1","3-2","3-3","3-4"};
Object[] tableColName = new Object[]{"第一列名","第二列名","第三列名","第四列名"};
JTable jTable02 = new JTable(tableData,tableColName);
// this.add(jTable02); //实例化表格的第三种方式:推荐
//1.先创建模型
DefaultTableModel defaultTableModel = new DefaultTableModel(tableData,tableColName);
//2.创建表格
JTable jTable03 = new JTable(defaultTableModel);
//3.声明滚动面板,用于显示表头,及实现表格数据的滚动显示
JScrollPane jScrollPane = new JScrollPane(jTable03);
this.add(jScrollPane);
/*************************表格显示的设置方法(附)***************************/
//设置字体、边框、背景色、边框色:略 //设置是否显示边框
jTable03.setShowGrid(true);
//设置被选择项字体颜色
jTable03.setSelectionForeground(Color.blue);
//设置被选择项背景颜色
jTable03.setSelectionBackground(Color.orange);
//设置表格排序
jTable03.setRowSorter(new TableRowSorter<DefaultTableModel>(defaultTableModel));
//禁止表头的拖拽:不允许用户随意的更改表头顺序,会造成数据顺序被破坏
jTable03.getTableHeader().setReorderingAllowed(false);
//设置行高:第一个参数表示索引,第二个参数表示行高,如:只有一个参数,则统一行高
jTable03.setRowHeight(30);
/*************************表格操作方法(高级)***************************/
//获取【列】模型
DefaultTableColumnModel defaultTableColumnModel = (DefaultTableColumnModel) jTable03.getColumnModel();
defaultTableColumnModel.addColumn(new TableColumn());
//获取某一列
TableColumn tableColumn = defaultTableColumnModel.getColumn(1);
//设置该列 列宽:设置列宽,推荐使用该方法,设置首选列宽
tableColumn.setPreferredWidth(30);
//获取所有列:迭代器,并进行迭代,而获取所有列
Enumeration<TableColumn> enumerationCol = defaultTableColumnModel.getColumns();
// while (enumerationCol.hasMoreElements())
// {
// //具体的操作
// }
//隐藏某一列的方法(重要)
tableColumn.setMinWidth(0);
tableColumn.setMaxWidth(0);
tableColumn.setPreferredWidth(0);
//对其列的数据:其中的参数,表示是那种数据类型要按照这种对其方式
DefaultTableCellRenderer defaultTableCellRenderer = (DefaultTableCellRenderer) jTable03.getDefaultRenderer(String.class);
defaultTableCellRenderer.setHorizontalAlignment(JLabel.CENTER);
//表头对其:同上,需要先获取表头,再获取渲染器,并设置对其方式 //添加行、移除行:在defaultTableModel操作即可 //设置选择表格行时,选择的模式:单选/多选
jTable03.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
//重新绑定、并载入表格数据(重要)
defaultTableModel.setDataVector(tableData, tableColName);
/*************************表格中右键弹出菜单的设置方法(高级)***************************/
//声明JPopupMenu类型菜单,并将菜单项加入其:类似一般的菜单设置方法
JPopupMenu jPopupMenu = new JPopupMenu();
JMenuItem jMenuItem = new JMenuItem("测试");
jPopupMenu.add(jMenuItem);
//将做好的菜单加入到表格的右键菜单中
jTable03.setComponentPopupMenu(jPopupMenu);
}
/************************************关于表格中的【监听器】**************************************/
/**
* 鼠标双击监听器
* @author Wfei
*
*/
private class TableDoClick implements MouseListener
{
@Override
public void mouseClicked(MouseEvent e)
{
if (e.getClickCount() == 2)
{ }
}
@Override
public void mouseEntered(MouseEvent e){}
@Override
public void mouseExited(MouseEvent e){}
@Override
public void mousePressed(MouseEvent e){}
@Override
public void mouseReleased(MouseEvent e){}
}
/**
* 右键菜单监听器
* @author Wfei
*
*/
private class MenuItemListener implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{ }
}
public static void main(String[] args)
{
JTableKnow_A jTableKnowA = new JTableKnow_A();
jTableKnowA.setVisible(true);
}
}

JAVA GUI学习 - JTable表格组件学习_A ***的更多相关文章

  1. JAVA GUI学习 - JTable表格组件学习_C ***

    /** * JTable高级应用 * @author Wfei * */ public class JTableKnow_C extends JFrame { JTable jTable; MyJMe ...

  2. Java GUI编程4---标签组件JLabel

    Java GUI编程4---标签组件JLabel 2018年06月11日 22:06:58 蓝蓝223 阅读数 12103更多 个人分类: Java书籍摘抄 所属专栏: Java Swing图形界面 ...

  3. JAVA GUI学习 - JOptionPane对话框组件学习

    /** * 对话框 - 学习笔记 * @author Wfei * */ public class JoptionPaneKnow extends JFrame { public JoptionPan ...

  4. JAVA GUI学习 - JTree树结构组件学习 ***

    public class JTreeKnow extends JFrame { public JTreeKnow() { this.setBounds(300, 100, 400, 500); thi ...

  5. JAVA GUI学习 - JTabbedPane选项卡组件学习

    public class JTabbedPaneKnow extends JFrame { JTabbedPane jTabbedPane; JPanel jPanelRed; JPanel jPan ...

  6. 编写Java程序,使用JTable表格组件展现人员信息列表

    返回本章节 返回作业目录 需求说明: 使用JTable组件显现人员信息列表 实现思路: 创建一个JTable对象. 创建一个JScrollPane对象(显示横向和纵向滚动条). 将表格添加到滚动面板. ...

  7. Informatic学习总结_day03_update组件学习

  8. C# BackgroundWorker组件学习

    C# BackgroundWorker组件学习  C# BackgroundWorker组件学习 一个程序中需要进行大量的运算,并且需要在运算过程中支持用户一定的交互,为了获得更好的用户体验,使用Ba ...

  9. 第二百二十八节,jQuery EasyUI,TreeGrid(树形表格)组件

    jQuery EasyUI,TreeGrid(树形表格)组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 TreeGrid(树形表格)组件的使 ...

随机推荐

  1. char *p 和char *p[]

    char *p 和char *p[]区别 char* p是一个指针,根本没分配内存,他指向的"abc123ABC" 是只读的,不能改变,在下面给他赋值是错的 而char p[]是一 ...

  2. 浅谈Qt事件的路由机制:鼠标事件

    请注意,本文是探讨文章而不是教程,是根据实验和分析得出的结果,可能是错的,因此欢迎别人来探讨和纠正. 这几天对于Qt的事件较为好奇,平时并不怎么常用,一般都是用信号,对于事件的处理,一般都是需要响应键 ...

  3. BZOJ 2762: [JLOI2011]不等式组( 平衡树 )

    对不等式变形..然后就是维护一些数, 随便找个数据结构都能写吧....用double感觉会有精度误差, 分类讨论把<改成<=了很久后弃疗了, 自己写了个分数体....然后速度就被完爆了.. ...

  4. Centos6.4 搭建Git服务器 (最简单的方法)

    下载 git-1.8.2.tar.gz tar -zvxf git-1.8.2.tar.gz cd git-1.8.2.2 sudo make prefix=/usr/local/git all su ...

  5. 循环-21. 求交错序列前N项和

    /* * Main.c * C21-循环-21. 求交错序列前N项和 * Created on: 2014年8月18日 * Author: Boomkeeper ***********测试通过**** ...

  6. MySQL Select 优化

    准备: create table t(x int primary key,y int unique,z int); insert into t(x,y,z) values(1,1,1),(2,2,2) ...

  7. 转:批处理for命令详解

    批处理for命令详解FOR这条命令基本上都被用来处理文本,但还有其他一些好用的功能!看看他的基本格式(这里我引用的是批处理中的格式,直接在命令行只需要一个%号)FOR 参数 %%变量名 IN (相关文 ...

  8. Mirantis Certification summary

    preface Mirantis Certification (MCA100 )summary roughly question types handy remain by Ruiy!

  9. Duanxx的图像处理学习: 透视变换(一)

    当人用眼睛看事物的时候,会感觉到近处的东西是比远处的东西要大一些的,通俗的说,这就是透视. 总的来说.透视变换是将3D的世界转换到2D图像上的一种手段,人的视觉系统和摄像头视觉系统也是基于这一工作原理 ...

  10. frame.origin.x 的意思和作用?

    frame.origin.x 的意思和作用? scrollView.frame 一个view的frame 包含它的矩形形状(size)的长和宽. 和它在父视图中的坐标原点(origin)x和y坐标 f ...