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. Spark源码学习2

    转自:http://www.cnblogs.com/hseagle/p/3673123.html 在源码阅读时,需要重点把握以下两大主线. 静态view 即 RDD, transformation a ...

  2. Scala学习之延迟绑定

    package com.swust.example object TraitDemo2 extends App{ //抽象类 abstract class Writer { def writeMess ...

  3. YII与Ace Admin 的集成

    目录 一. 前言... 1 二.为什么要使用YII+ace. 1 三.新建YII模块... 1 四.如何修改模板... 3 五.注意的地方... 4 六.整合的不足之处... 4 一. 前言 yii- ...

  4. ;(function( $, window, undefined ){ }(jQuery,window))为何需要往里面传$,window,undefined这些参数

    (function( $, jQuery , undefined ) {})(jQuery); 为什么要将window和undefined作为参数传给它? 因为 ecmascript 执行JS代码是从 ...

  5. <正向/反向>最大匹配算法(Java)

    算法描述(正向): 给定最大词长n,待分词文本str,指针f=0,词典dic文档 1 取子串sub=str(f,f+n) 2 如果(遍历dic,有匹配sub) f++; 3 否则 n--; 4 注意: ...

  6. 一周学会Mootools 1.4中文教程:(3)事件

    今天我們講解一下mt的事件部分,对于事件的讲解主要包含三部分,分别是:绑定,移除,和触发,我们首先来看一个例子 //jquery的事件绑定方式$('a').click(function){ alert ...

  7. javascript --推箱子

    <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" ...

  8. codeforces 377B Preparing for the Contest 二分+优先队列

    题目链接 给你m个bug, 每个bug都有一个复杂度.n个人, 每个人有两个值, 一个是能力值, 当能力值>=bug的复杂度时才可以修复这个bug, 另一个是雇佣他需要的钱,掏一次钱就可以永久雇 ...

  9. HDU 4366 Successor(树链剖分+zkw线段树+扫描线)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=4366 [题目大意] 有一个公司,每个员工都有一个上司,所有的人呈树状关系,现在给出每个人的忠诚值和 ...

  10. NYOJ541 最强DE 战斗力(第五届省赛试题)

    最强DE 战斗力 时间限制:1000 ms  |  内存限制:65535 KB 难度: 描述 春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业.但许多国家对它虎视眈眈,准备联合起来对赵国发起一场 ...