zoukankan      html  css  js  c++  java
  • JAVA GUI学习

      1 public class JTableKnow_A extends JFrame
      2 {
      3     public JTableKnow_A()
      4     {
      5         this.setBounds(300, 100, 400, 300);
      6         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      7         
      8         /****************************************************/
      9         //实例化表格的第一种方式
     10         JTable jTable01 = new JTable(3,4);
     11 //        this.add(jTable01);
     12         //实例化表格的第二种方式
     13         Object[][] tableData = new Object[3][4];
     14         tableData[0] = new Object[]{"1-1","1-2","1-3","1-4"};
     15         tableData[1] = new Object[]{"2-1","2-2","2-3","2-4"};
     16         tableData[2] = new Object[]{"3-1","3-2","3-3","3-4"};
     17         Object[] tableColName = new Object[]{"第一列名","第二列名","第三列名","第四列名"};
     18         JTable jTable02 = new JTable(tableData,tableColName);
     19 //        this.add(jTable02);
     20         
     21         //实例化表格的第三种方式:推荐
     22         //1.先创建模型
     23         DefaultTableModel defaultTableModel = new DefaultTableModel(tableData,tableColName);
     24         //2.创建表格
     25         JTable jTable03 = new JTable(defaultTableModel);
     26         //3.声明滚动面板,用于显示表头,及实现表格数据的滚动显示
     27         JScrollPane jScrollPane = new JScrollPane(jTable03);
     28         this.add(jScrollPane);
     29         /*************************表格显示的设置方法(附)***************************/
     30         //设置字体、边框、背景色、边框色:略
     31         
     32         //设置是否显示边框
     33         jTable03.setShowGrid(true);
     34         //设置被选择项字体颜色
     35         jTable03.setSelectionForeground(Color.blue);
     36         //设置被选择项背景颜色
     37         jTable03.setSelectionBackground(Color.orange);
     38         //设置表格排序
     39         jTable03.setRowSorter(new TableRowSorter<DefaultTableModel>(defaultTableModel));
     40         //禁止表头的拖拽:不允许用户随意的更改表头顺序,会造成数据顺序被破坏
     41         jTable03.getTableHeader().setReorderingAllowed(false);
     42         //设置行高:第一个参数表示索引,第二个参数表示行高,如:只有一个参数,则统一行高
     43         jTable03.setRowHeight(30);
     44         /*************************表格操作方法(高级)***************************/
     45         //获取【列】模型
     46         DefaultTableColumnModel defaultTableColumnModel = (DefaultTableColumnModel) jTable03.getColumnModel();
     47         defaultTableColumnModel.addColumn(new TableColumn());
     48         //获取某一列
     49         TableColumn tableColumn = defaultTableColumnModel.getColumn(1);
     50         //设置该列 列宽:设置列宽,推荐使用该方法,设置首选列宽
     51         tableColumn.setPreferredWidth(30);
     52         //获取所有列:迭代器,并进行迭代,而获取所有列
     53         Enumeration<TableColumn> enumerationCol = defaultTableColumnModel.getColumns();
     54 //        while (enumerationCol.hasMoreElements())
     55 //        {
     56 //            //具体的操作
     57 //        }
     58         //隐藏某一列的方法(重要)
     59         tableColumn.setMinWidth(0);
     60         tableColumn.setMaxWidth(0);
     61         tableColumn.setPreferredWidth(0);
     62         //对其列的数据:其中的参数,表示是那种数据类型要按照这种对其方式
     63         DefaultTableCellRenderer defaultTableCellRenderer = (DefaultTableCellRenderer) jTable03.getDefaultRenderer(String.class);
     64         defaultTableCellRenderer.setHorizontalAlignment(JLabel.CENTER);
     65         //表头对其:同上,需要先获取表头,再获取渲染器,并设置对其方式
     66         
     67         //添加行、移除行:在defaultTableModel操作即可
     68         
     69         //设置选择表格行时,选择的模式:单选/多选
     70         jTable03.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
     71         //重新绑定、并载入表格数据(重要)
     72         defaultTableModel.setDataVector(tableData, tableColName);
     73         /*************************表格中右键弹出菜单的设置方法(高级)***************************/
     74         //声明JPopupMenu类型菜单,并将菜单项加入其:类似一般的菜单设置方法
     75         JPopupMenu jPopupMenu = new JPopupMenu();
     76         JMenuItem jMenuItem = new JMenuItem("测试");
     77         jPopupMenu.add(jMenuItem);
     78         //将做好的菜单加入到表格的右键菜单中
     79         jTable03.setComponentPopupMenu(jPopupMenu);
     80     }
     81     /************************************关于表格中的【监听器】**************************************/
     82     /**
     83      * 鼠标双击监听器
     84      * @author Wfei
     85      *
     86      */
     87     private class TableDoClick implements MouseListener
     88     {
     89         @Override
     90         public void mouseClicked(MouseEvent e)
     91         {
     92             if (e.getClickCount() == 2)
     93             {
     94                 
     95             }
     96         }
     97         @Override
     98         public void mouseEntered(MouseEvent e){}
     99         @Override
    100         public void mouseExited(MouseEvent e){}
    101         @Override
    102         public void mousePressed(MouseEvent e){}
    103         @Override
    104         public void mouseReleased(MouseEvent e){}
    105     }
    106     /**
    107      * 右键菜单监听器
    108      * @author Wfei
    109      *
    110      */
    111     private class MenuItemListener implements ActionListener
    112     {
    113         @Override
    114         public void actionPerformed(ActionEvent e)
    115         {
    116             
    117         }
    118     }
    119     public static void main(String[] args)
    120     {
    121         JTableKnow_A jTableKnowA = new JTableKnow_A();
    122         jTableKnowA.setVisible(true);
    123     }
    124 }
  • 相关阅读:
    使用 kill 命令杀死 java进程,你用对了吗?
    脚本 启动/停止 jar包服务
    Zipkin和微服务链路跟踪
    nacos初探--作为配置中心
    第一次有人把“分布式事务”讲的这么简单明了
    SquishIt引起的HTTP Error 500.0
    imagesLoaded – 检测网页中的图片是否加载
    25个精美的创意机构和设计工作室网站案例
    使用 FocusPoint.js 实现图片的响应式裁剪
    设计师收藏的20款英文手写字体【免费下载】
  • 原文地址:https://www.cnblogs.com/Wfei/p/3332714.html
Copyright © 2011-2022 走看看