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. ##DAY9 UITabBarController

    ##DAY9 UITabBarController UIViewController的tabBarController UIViewController的tabBarItem #pragma mark ...

  2. jQ中prop与attr的区别

    1.prop适用于HTML元素本身就带有的固有属性 2.attr适用于HTML元素我们自定义的属性 <input type="checkbox" value="复选 ...

  3. 2)PHP中把读取.txt中内容并转为UTF-8格式

    <?php $filename = "filename.txt"; $handle = fopen($filename, "r");//读取二进制文件时, ...

  4. python 时间字符串与日期转化

    python 时间字符串与日期转化 datetime.datetime.strptime(string, format) 根据指定的格式解析字符串为一个datetime类型.相当于datetime.d ...

  5. Windows系统下远程Linux系统

    Windows系统下远程Linux系统 工具:Xmanager 启动界面: 配置保存路径(win7): C:\Users\Administrator\AppData\Roaming\NetSarang ...

  6. this .运算符 和 [] 运算符

    首先看这个  这两个运行结果是不一样的 前两个是3  后面是10 var length = 10; var arr = [function(){console.log(this.length);},2 ...

  7. CFBundleName系列参数的含义

    顺带讲一下其他这些选项表示什么意思: CFBundleName: CFBundleName指定了该束的简称.简称应该小于16个字符并且适合在菜单和“关于”中显示.通过把它加入到适当的.lproj子文件 ...

  8. 使用Fiddler解析WCF RIA Service传输的数据

    原文 http://www.cnblogs.com/wintersun/archive/2011/01/05/1926386.html 使用Fiddler 2 解析WCF RIA Service传输的 ...

  9. mysql 性别存储

    大家在设计数据库时,碰到 性别.状态等 这些 值比较固定的列时,数据类型 是如何定义? 通常都是采用 : 1 create table `XXX` 2 ( 3 ........ 4 sex int(1 ...

  10. c#SocketIO4NetClient访问node js

    提到Node,不能错过的是WebSocket协议.它与Node之间的配合堪称完美,其理由有两条. 1.WebSocket客户端基于时间的编程模型与Node中自定义事件相差无几. 2.WebSocket ...