JAVA GUI学习 - JTable表格组件学习_A ***

  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 }

 

你可能感兴趣的:(jtable)