【代码笔记】Java连连看项目的实现(1)——JTable 、TableModel的使用
- javax.swing.table.TableModel和javax.swing.JTable
- JTable 、TableModel是Java里面画表格的包。
- TableModel:为Table提供显示数据、表格维数、表格中显示数据类 型、列标题等Table需要显示的一些属性
- JTable:提供表格本身的属性和操作,比如表格的样式、行高、背景、行选中属性等
- JTable相当于网页,模特;TableModel相当于服务器,衣服。
- JTable 、TableModel 两者是相互依赖的关系(等于B/S模式)
TableModel 服务器的角色,实实在在的数据
JTable要展示的东西 TableModel 提供给它,刷新一次就请求一次
处理连连看消除逻辑(算法实现):
1)相同图片能够消除
2)在同一行或者同一列无障碍物可消除
3)一个拐点可消除
4)两个拐点可消除
- 连连看项目思路:
- 建好窗体;
- 增加JTable组件
- 增加TableModel组件
- 文件目录:

- 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); }
} - 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的使用的更多相关文章
- 【代码笔记】Java连连看项目的实现(2)——JTable 、TableModel的使用
博客有时间就写写,所以一篇可能会拆成很多篇,写完后计划再合在一起. 首先肯定是要实现连连看的界面. 先准备连连看要的图片.. “LianLianKan”就是项目名称. 当然,如果小白看我的博客想学到什 ...
- Java学习笔记三十:Java小项目之租车系统
Java小项目之租车系统 一:项目背景介绍: 根据所学知识,编写一个控制台版的“呱呱租车系统” 功能: 1.展示所有可租车辆: 2.选择车型.租车量: 3.展示租车清单,包含:总金额.总载货量以及其车 ...
- 项目管理---git----快速使用git笔记(五)------本地项目代码提交到远程仓库---新建项目
上一篇我们已经知道了怎么从远程仓库获取项目文件代码. 项目管理---git----快速使用git笔记(四)------远程项目代码的首次获取 git还有一种使用场景是 我本来在电脑里就有一个项目,现在 ...
- Docker学习笔记五:Docker生成jenkins容器,支持Java Web项目持续集成、持续部署
一.创建jenkins容器: 1.拉取jeknin镜像 sudo docker pull jenkins 2.创建一个jenkins目录 sudo mkdir /jenkins 3.在jenkins目 ...
- Android学习笔记_32_通过WebView实现JS代码与Java代码互相通信
webview两种实现方法,覆盖onKeyDown()方法 缓存 WebSettings应用注意的几个问题 1.要实现JS代码与Java代码互相通信,需要通过Android的WebView控件,在视图 ...
- java web项目由http转换成https遇到的各种坑
java web项目由http转换成https遇到的各种坑 这篇文章写给自己在经历项目由http转换成https遇到的各种坑所做的一份笔记,留给以后自己看,或者和开发的朋友也刚好遇到和我一样的问题的朋 ...
- 使用Spring Boot来加速Java web项目的开发
我想,现在企业级的Java web项目应该或多或少都会使用到Spring框架的. 回首我们以前使用Spring框架的时候,我们需要首先在(如果你使用Maven的话)pom文件中增加对相关的的依赖(使用 ...
- Linux(Centos)之安装tomcat并且部署Java Web项目
1.准备工作 a.下载tomcat linux的包,地址:http://tomcat.apache.org/download-80.cgi,我们下载的版本是8.0,下载方式如图: b ...
- 【转】Java Web 项目获取运行时路径 classpath
Java Web 项目获取运行时路径 classpath 假设资源文件放在maven工程的 src/main/resources 资源文件夹下,源码文件放在 src/main/java/下, 那么ja ...
随机推荐
- adb命令connect设备必须添加端口号
Android开发,一般使用adb远程连接设备,习惯性一个命令: adb connect 10.100.1.202 这几天发现一个问题,同一个命令,提示错误: adb connect 10.100.1 ...
- js Array属性和用法
//构造函数创建数组 var arr1=new Array(); //字面量的方式 var arr2=[]; 1.Array.isArray(对象)---->判断这个对象是不是数组 //判断对象 ...
- ionic3 IPX留海适配
解决:使用 safe-area-inset-top 等 ios 安全区域变量 + meta 标签中设置 viewport-fit=cover https://github.com/pengkobe/r ...
- 转载---<html>与<body>
关于根元素html以及body的对比,主要是遇到设置背景色的问题,这里转载张鑫旭的关于html和body对比的文.(直接贴过来,是为了以后自己方便看) 原文地址:http://www.zhangxin ...
- VIA格式转COCO格式
VIA是一款很好用的标注软件,基于网页,不过现在开源的大多数目标检测器都是基于COCO训练和测试的,我们如果想要训练自己的数据集,要么修改源代码,要么将自己的标注格式改成COCO格式,采用第一种方法很 ...
- angularjs中向html页面添加内容节点元素代码段的两种方法
第一种方式:原生JS向html页面添加内容节点元素代码段: <!DOCTYPE html> <html> <head> <meta charset=" ...
- 洛谷 P3239 / loj 2112 [HNOI2015] 亚瑟王 题解【期望】【DP】
???看不懂的期望DP 题目描述 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂亮.众所周知,亚 ...
- tensorflow-如何防止过拟合
回归:过拟合情况 / 分类过拟合 防止过拟合的方法有三种: 1 增加数据集 2 添加正则项 3 Dropout,意思就是训练的时候隐层神经元每次随机抽取部分参与训练.部分不参与 最后对之前普通神经网络 ...
- SPOJ - LOCKER 数论 贪心
题意:求出\(n\)拆分成若干个数使其连乘最大的值 本题是之江学院网络赛的原题,计算规模大一点,看到EMAXX推荐就做了 忘了大一那会是怎么用均值不等式推出结果的(还给老师系列) 结论倒还记得:贪心分 ...
- 03-树2 List Leaves (25 分)
Given a tree, you are supposed to list all the leaves in the order of top down, and left to right. I ...