• 【代码笔记】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 }
  • 相关阅读:
    VSTO资源
    Windows Server 2008启用无线网络服务支持(转)
    [转载]数据库设计三大范式应用实例剖析
    C#如何为winform程序打包发布应用(图解)
    XPO学习一(获取数据库服务器时间)
    php中echo和print的区别
    isset()
    asp.net文本编辑器FCKeditor详解
    ASP.net 上传大文件问题
    StringBuilder与string和String的区别
  • 原文地址:https://www.cnblogs.com/xiaofu007/p/5444879.html
Copyright © 2020-2023  润新知