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. 53个Oracle语句优化规则详解(转)

    Oracle sql 性能优化调整  1. 选用适合的ORACLE优化器        ORACLE的优化器共有3种:a. RULE (基于规则)   b. COST (基于成本) c. CHOOSE ...

  2. 成功的背后!(给所有IT人)----转载:来自CSDN第一名博主

    转载:来自CSDN第一名博主:http://blog.csdn.net/phphot/article/details/2187505 放在这里激励你我! 正文: 成功的背后,有着许多不为人知的故事,而 ...

  3. linux杂记(十一)Bash Shell的使用环境

    Bash Shell使用环境 Bash Shell使用环境 1.登录讯息显示数据:/etc/issue,/etc/motd 我们在终端机接口(tty1~tty6)登入的时候,会有几行提示的字符串,那个 ...

  4. symfony2 关于是否需要建立多bundle

    http://blog.danielribeiro.org/yes-you-can-have-low-coupling-in-a-symfony-standard-edition-applicatio ...

  5. 【转】Virtualbox虚拟机配置安装CentOS 6.5图文教程

    http://www.111cn.net/sys/CentOS/61709.htm 什么是Virtualbox? VirtualBox 是一款开源虚拟机软件(注:跟vmware差不多).Virtual ...

  6. Spring 装配Bean

    Spring 装配Bean 装配解释: 创建应用对象之间协作关系的的行为通常称为装配(wiring),这也是依赖注入的本质 依赖注入是Spring的基础要素 一 : 使用spring装配Bean基础介 ...

  7. MYSQL 执行计划

    Explain语法 EXPLAIN SELECT …… 变体: 1. EXPLAIN EXTENDED SELECT …… 将执行计划“反编译”成SELECT语句,运行SHOW WARNINGS 可得 ...

  8. 转:CI伪静态化

    去掉php框架CI默认url中的index.php 2010-03-17 17:33:07|  分类: php框架ci |字号 订阅   CI默认的rewrite url中是类似这样的,例如你的CI根 ...

  9. Codeforces 353D Queue(构造法)

    [题目链接] http://codeforces.com/contest/353/problem/D [题目大意] 10^6个男女排队,每一秒,如果男生在女生前面,即pos[i]是男生,pos[i+1 ...

  10. ios蓝牙开发(二)ios连接外设的代码实现

    上一篇文章介绍了蓝牙的技术知识,这里我们具体说明一下中心模式的应用场景.主设备(手机去扫描连接外设,发现外设服务和属性,操作服务和属性的应用.一般来说,外设(蓝牙设备,比如智能手环之类的东西), 会由 ...