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. Csharp多态的实现(接口)

    1.什么是接口 接口可以看做是一个标准, 所有继承的子类需要按照接口中声明的方法来 接口用关键字 interface 修饰,接口的名字一般是I.........able ,表示我有什么能力 接口一般是 ...

  2. spring拦截器的定义

    (一).拦截器的定义 1.为什么需要拦截器:在做身份认证或者是进行日志的记录时,我们需要通过拦截器达到我们的目的 2.什么事拦截器:在AOP(Aspect-Oriented Programming)中 ...

  3. OpenGL学习之windows下安装opengl的glut库

    OpenGL学习之windows下安装opengl的glut库 GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装.  Windows环境下的GLUT下载地址:(大小约为15 ...

  4. egret命令行编译项目时 版本不对应的问题

    egret 命令行编译项目时 如使用 egret build -e 会出现版本不对应的问题 分析原因 A,B项目 A项目使用1.8的egret引擎, B项目使用2.5引擎 但本地引擎升级至2.5.5, ...

  5. hdu 4612 Warm up 有重边缩点+树的直径

    题目链接 Warm up Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Tot ...

  6. ONFI闪存数据通道接口标准

    早期的闪存产品每个厂家的设计标准各有不同,会碰到各种各样的问题,特别是到了06年之后,闪存产业市场需求开始发力,造成了迫切需要一个统一的标准来改变这个问题. 2007年1月,以英特尔,镁光,海力士,意 ...

  7. Delphi获取与设置系统时间格式,即GetLocaleInfo和SetLocaleInfo

    在Delphi中,特别是在写管理系统软件时,经常要用到 FormatDateTime 以将 TDateTime 格式的日期时间转换成字符串形式的值显示或保存起来,或者用 StrToDateTime将字 ...

  8. Delphi 重启应用程序(创建Bat文件的Process)

    Delphi 重启应用程序在工程主文件中加入Delay(500); //启动程序时请延时一段时间,否则只能重启一次 procedure RestartApp; var BatchFile: TextF ...

  9. POJ 3061 Subsequence(Two Pointers)

    [题目链接] http://poj.org/problem?id=3061 [题目大意] 给出S和一个长度为n的数列,问最短大于等于S的子区间的长度. [题解] 利用双指针获取每一个恰好大于等于S的子 ...

  10. 使用ssh无密码登录

    使用ssh无密码登录 ssh 是一个专为远程登录会话和其他网络服务提供安全性的协议.默认状态下ssh链接是需要密码认证的,可以通过添加系统认证(即公钥-私钥)的修改,修改后系统间切换可以避免密码输入和 ...