【代码笔记】Java连连看项目的实现(1)——JTable 、TableModel的使用

  1. javax.swing.table.TableModeljavax.swing.JTable
  2. JTable 、TableModel是Java里面画表格的包。
  3. TableModel:为Table提供显示数据、表格维数、表格中显示数据类  型、列标题等Table需要显示的一些属性
  4. JTable:提供表格本身的属性和操作,比如表格的样式、行高、背景、行选中属性等
  5. JTable相当于网页,模特;TableModel相当于服务器,衣服。
  6. JTable 、TableModel 两者是相互依赖的关系(等于B/S模式)
  7. TableModel  服务器的角色,实实在在的数据

  8. JTable要展示的东西  TableModel  提供给它,刷新一次就请求一次

  9. 处理连连看消除逻辑(算法实现):

      1)相同图片能够消除

      2)在同一行或者同一列无障碍物可消除

      3)一个拐点可消除

      4)两个拐点可消除

  10. 连连看项目思路:
    1. 建好窗体;
    2. 增加JTable组件
    3. 增加TableModel组件
  11. 文件目录:
  12. TbaleFrame.java
     1 package com.edp.impl;
     2 
     3 
     4 import java.awt.FlowLayout;
     5 
     6 import javax.swing.JFrame;
     7 import javax.swing.JTable;
     8 
     9 /**
    10  * 
    11  * @author Administrator
    12  *
    13  */
    14 @SuppressWarnings("serial")
    15 public class TableFrame extends JFrame{
    16     public static void main(String[] args) {
    17         new TableFrame().initFrame();
    18     }
    19 
    20     private void initFrame() {
    21         this.setSize(800,600);
    22         this.setDefaultCloseOperation(3);
    23         this.setLayout(new FlowLayout());
    24         //设置窗体不能改变大小
    25         this.setResizable(false);
    26         this.setLocationRelativeTo(null);
    27         
    28         MyTableModel mtm = new MyTableModel(); 
    29         JTable table = new JTable(mtm);
    30         this.add(table);
    31         this.setVisible(true);
    32         
    33     }
    34 }

     

  13. MyTableModel.java
     1 package com.edp.impl;
     2 
     3 import javax.swing.event.TableModelListener;
     4 import javax.swing.table.TableModel;
     5 
     6 public class MyTableModel implements TableModel {
     7     //获取列类型
     8     public Class<?> getColumnClass(int columnIndex) {
     9         return String.class;
    10     }
    11     //获取总行数
    12     public int getRowCount() {
    13         return 0;
    14     }
    15     //获取总列数
    16     public int getColumnCount() {
    17         return 0;
    18     }
    19     //获取表格列名
    20     public String getColumnName(int columnIndex) {
    21         return null;
    22     }
    23     //设置单元格数据
    24     public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
    25     }
    26     //获得单元格数据
    27     public Object getValueAt(int rowIndex, int columnIndex) {
    28         return 0;
    29     }
    30     //单元格是否编辑
    31     public boolean isCellEditable(int rowIndex, int columnIndex) {
    32             return true;
    33     }
    34     public void removeTableModelListener(TableModelListener l) {}
    35     public void addTableModelListener(TableModelListener l) {}
    36 }

     

posted @ 2016-04-29 00:14  时孚  阅读(1694)  评论(0编辑  收藏  举报