1. javax.swing.table.TableModel和javax.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
     package com.edp.impl;
    
     import java.awt.FlowLayout;
    
     import javax.swing.JFrame;
    import javax.swing.JTable; /**
    *
    * @author Administrator
    *
    */
    @SuppressWarnings("serial")
    public class TableFrame extends JFrame{
    public static void main(String[] args) {
    new TableFrame().initFrame();
    } private void initFrame() {
    this.setSize(800,600);
    this.setDefaultCloseOperation(3);
    this.setLayout(new FlowLayout());
    //设置窗体不能改变大小
    this.setResizable(false);
    this.setLocationRelativeTo(null); MyTableModel mtm = new MyTableModel();
    JTable table = new JTable(mtm);
    this.add(table);
    this.setVisible(true); }
    }
  13. MyTableModel.java
     package com.edp.impl;
    
     import javax.swing.event.TableModelListener;
    import javax.swing.table.TableModel; public class MyTableModel implements TableModel {
    //获取列类型
    public Class<?> getColumnClass(int columnIndex) {
    return String.class;
    }
    //获取总行数
    public int getRowCount() {
    return 0;
    }
    //获取总列数
    public int getColumnCount() {
    return 0;
    }
    //获取表格列名
    public String getColumnName(int columnIndex) {
    return null;
    }
    //设置单元格数据
    public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
    }
    //获得单元格数据
    public Object getValueAt(int rowIndex, int columnIndex) {
    return 0;
    }
    //单元格是否编辑
    public boolean isCellEditable(int rowIndex, int columnIndex) {
    return true;
    }
    public void removeTableModelListener(TableModelListener l) {}
    public void addTableModelListener(TableModelListener l) {}
    }

【代码笔记】Java连连看项目的实现(1)——JTable 、TableModel的使用的更多相关文章

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

    博客有时间就写写,所以一篇可能会拆成很多篇,写完后计划再合在一起. 首先肯定是要实现连连看的界面. 先准备连连看要的图片.. “LianLianKan”就是项目名称. 当然,如果小白看我的博客想学到什 ...

  2. Java学习笔记三十:Java小项目之租车系统

    Java小项目之租车系统 一:项目背景介绍: 根据所学知识,编写一个控制台版的“呱呱租车系统” 功能: 1.展示所有可租车辆: 2.选择车型.租车量: 3.展示租车清单,包含:总金额.总载货量以及其车 ...

  3. 项目管理---git----快速使用git笔记(五)------本地项目代码提交到远程仓库---新建项目

    上一篇我们已经知道了怎么从远程仓库获取项目文件代码. 项目管理---git----快速使用git笔记(四)------远程项目代码的首次获取 git还有一种使用场景是 我本来在电脑里就有一个项目,现在 ...

  4. Docker学习笔记五:Docker生成jenkins容器,支持Java Web项目持续集成、持续部署

    一.创建jenkins容器: 1.拉取jeknin镜像 sudo docker pull jenkins 2.创建一个jenkins目录 sudo mkdir /jenkins 3.在jenkins目 ...

  5. Android学习笔记_32_通过WebView实现JS代码与Java代码互相通信

    webview两种实现方法,覆盖onKeyDown()方法 缓存 WebSettings应用注意的几个问题 1.要实现JS代码与Java代码互相通信,需要通过Android的WebView控件,在视图 ...

  6. java web项目由http转换成https遇到的各种坑

    java web项目由http转换成https遇到的各种坑 这篇文章写给自己在经历项目由http转换成https遇到的各种坑所做的一份笔记,留给以后自己看,或者和开发的朋友也刚好遇到和我一样的问题的朋 ...

  7. 使用Spring Boot来加速Java web项目的开发

    我想,现在企业级的Java web项目应该或多或少都会使用到Spring框架的. 回首我们以前使用Spring框架的时候,我们需要首先在(如果你使用Maven的话)pom文件中增加对相关的的依赖(使用 ...

  8. Linux(Centos)之安装tomcat并且部署Java Web项目

    1.准备工作 a.下载tomcat linux的包,地址:http://tomcat.apache.org/download-80.cgi,我们下载的版本是8.0,下载方式如图:          b ...

  9. 【转】Java Web 项目获取运行时路径 classpath

    Java Web 项目获取运行时路径 classpath 假设资源文件放在maven工程的 src/main/resources 资源文件夹下,源码文件放在 src/main/java/下, 那么ja ...

随机推荐

  1. 洛谷 P2096 最佳旅游线路

    某旅游区的街道成网格状.其中东西向的街道都是旅游街,南北向的街道都是林阴道.由于游客众多,旅游街被规定为单行道,游客在旅游街上只能从西向东走,在林阴道上则既可从南向北走,也可以从北向南走. 阿龙想到这 ...

  2. 【BZOJ1880】[SDOI2009]Elaxia的路线 (最短路+拓扑排序)

    [SDOI2009]Elaxia的路线 题目描述 最近,\(Elaxia\)和\(w**\)的关系特别好,他们很想整天在一起,但是大学的学习太紧张了,他们 必须合理地安排两个人在一起的时间. \(El ...

  3. Python第四次作业

    设计题1: 设计一个本月份日历,输出格式如下: 要求: 1.初始化start_day,end_day两个日期 from datetime import datetime start_day=datet ...

  4. 5.js与jQuery入口函数执行时机

    js与jQuery入口函数执行时机区别: JS入口函数是在所有资源加载完成后,才执行.(包括:页面.外部js文件.外部css文件.图片) jQuery入口函数,是在文档加载完成后就执行.文档加载完成指 ...

  5. 12C GI + 11g DB 环境中PSU安装

    环境说明: 12.1.0.2的GI集群,11.2.0.4的RAC数据库,需要安装最新的补丁. 补丁下载: 12.1.0.2 GI的PSU:11.2.0.4 DB的PSU:OJVM For 11.2.0 ...

  6. C++_异常1-调用abort()

    异常是相对较新的C++功能,有些老式编译器可能没有实现.另外有些编译器可能默认关闭这一特性,需要使用编译器选项来打开它. 这里先讨论一个基本问题: 2.0 * x * y / (x+y) 如果y是x的 ...

  7. ORA-28009: 应当以 SYSDBA 身份或 SYSOPER 身份建立 SYS 连接

    用 SQL*Plus 连接数据库的时候,除了用户名和密码外,还要在口令后面加一个主机字符串.如下: 请输入用户名:sys 口令:ANKoracle123,orcl as sysdba

  8. VBS修改本机的账号密码

    On Error Resume Next strComputer = "." Set WshShell = WScript.CreateObject("WScript.S ...

  9. 剑指offer——面试题6:从尾到头打印链表

    #include"iostream" #include"stdio.h" #include"stack" using namespace s ...

  10. MySQL误删root用户导致无法登陆解决方法

    测试环境   删除前 mysql> select user,host,password from mysql.user; +------+-----------+---------------- ...