欢迎光临散文网 会员登陆 & 注册

Java:swing图书管理系统(详细个人注释版)Object类详解(2)

2020-04-06 19:53 作者:诗书画唱  | 我要投稿




package swingPackage;


import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.util.Vector;


import javax.swing.JFrame;

import javax.swing.JOptionPane;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.table.DefaultTableModel;


public class JTableJieMian extends JFrame {

/*Model(模型; )模式(; 样式; 模范; 时装模特儿; 设计; 型号; 典型; 榜样; 原型)*/

/*DefaultTableModel(不履行; 违约; 拖欠; 未到庭;) 默认值*/

/*DefaultTableModel是 TableModel 的一个实现,

* 它使用一个 Vector 来存储单元格的值对象,该 Vector 由多个 Vector 组成。

通过DefaultTableModel可以对表格进行数据的增删改,

比较常用的。*/

static DefaultTableModel dtm = null;// 储存内容的容器

/*

* 1.声明表格 2.声明数据源 (没有数据库,所以是模拟数据源) 3. 将每个集合的内容添加到大集合(保存数据的集合)中 4.声明一个储存内容的容器

* (defaultTableModel) 5.将内容和标题添加到储存内容的容器里 6.将储存内容的容器添加到JTable中

* 7.标题不见了,内容假如比较多,加个滚动条

*/

/*Table(桌子; 列表; 一览表; )表格(; 平面; 谈判桌; 饭菜; 乘法表; 名次表)*/

/*JTable 用来显示和编辑常规二维单元表*/

static JTable jt1 = null;// 声明一个表格

// 这个集合用来存放内容的标题


/*在相对于ArrayList来说,Vector线程是安全的,也就是说是同步的


创建了一个向量类的对象后,可以往其中随意地插入不同的类的对象,既不需顾及类型也不需预先选定向量的容量,并可方便地进行查找。

对于预先不知或不愿预先定义数组大小,并需频繁进行查找、插入和删除工作的情况,可以考虑使用向量类。

Java.util.Vector提供了向量(Vector)类以实现类似动态数组的功能。*/



/*Object 是 Java 类库中的一个特殊类,也是所有类的父类。也就是说,Java 允许把任何类型的对象赋给 Object 类型的变量。

* 当一个类被定义后,如果没有指定继承的父类,那么默认父类就是 Object 类。*/

Vector<Object> v = new Vector<Object>();

// 存放具体的内容的时候,因为内容是多行多列,所以我们使用一个集合的集合存储

/*Object:(物体; 东西; )对象(; 目标; 目的; 宗旨; 客体; 宾语)*/

Vector<Vector<Object>> v_neirong = new Vector<Vector<Object>>();


// 现在没有数据库,所以数据我们使用模拟数据库

// List ArrayList Vector(和List一样。对于JTable的操作的时候只能使用这个集合)

// set HashSet

// Map HashMap

public JTableJieMian() {

// 布局方式、大小、居中、释放资源、是否显示

this.setTitle("豆瓣TOP评分9分以上书单");

v.add("编号");

v.add("图书名称");

v.add("价格");

v.add("出版社");

Vector<Object> v1 = new Vector<Object>();

v1.add(1);

v1.add("小王子");

v1.add("11.88元");

v1.add("人民文学出版社");

Vector<Object> v2 = new Vector<Object>();

v2.add(2);

v2.add("霍乱时期的爱情");

v2.add("20.0元");

v2.add("南海出版公司");

Vector<Object> v3 = new Vector<Object>();

v3.add(3);

v3.add("撒哈拉的故事");

v3.add("22.00元");

v3.add("皇冠出版社");

Vector<Object> v4 = new Vector<Object>();

v4.add(4);

v4.add("月亮和六便士");

v4.add("17.00元");

v4.add("上海译文出版社");

Vector<Object> v5 = new Vector<Object>();

v5.add(5);

v5.add("活着");

v5.add("18.00元");

v5.add("南海出版公司");

Vector<Object> v6 = new Vector<Object>();

v6.add(6);

v6.add("百年孤独");

v6.add("19.00元");

v6.add("南海出版公司");

Vector<Object> v7 = new Vector<Object>();

v7.add(7);

v7.add("平凡的世界");

v7.add("20.00元");

v7.add("人民文学出版社");

v_neirong.add(v1);

v_neirong.add(v2);

v_neirong.add(v3);

v_neirong.add(v4);

v_neirong.add(v5);

v_neirong.add(v6);

v_neirong.add(v7);

// dtm = new DefaultTableModel(v_neirong, v);// 将内容储存到容器中


dtm = new DefaultTableModel(v_neirong, v) {

@Override

public boolean isCellEditable(int row, int column) {

// 双击的时候就可以修改单个单元格,但是我们一-旦连上数据库

// 你一修改内容,数据库没有修改,那么数据就不真实

// 所以让用户禁止直接修改内容

// 如何禁止,重写其isCellEditable():是否允许用户修改false

return false;

}

};

jt1 = new JTable(dtm);// 将储存内容的容器添加到表格中

jt1.setBounds(10, 10, 400, 270);


/* jt1. addMouseListener(new shijian_table(this));这种格式的必须写不然会没效果 */

jt1.addMouseListener(new shijian_table(this));

JScrollPane jsp = new JScrollPane(jt1);

jsp.setBounds(10, 10, 400, 100);

this.add(jsp);


this.setLayout(null);

this.setSize(500, 500);

this.setLocationRelativeTo(null);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

}

}

/*Mouse:(鼠;) 鼠标(; 青肿; 乌青块; 鼠皮色; 小哺乳动物; 胆怯的人; 不声不响的人; 浅棕灰色)*/

class shijian_table implements MouseListener {

public static JTableJieMian dt = null;


//将窗体传入过来:

public shijian_table(JTableJieMian dt) {

this.dt = dt;

}

/*Clicked:点击(;(使)作咔嗒声;突然变明了;(click的过去式和过去分词))*/

@Override

public void mouseClicked(MouseEvent arg0) {

// TODO Auto-generated method stub


/*row:一排;一行;一列;划船时间;划船路程;吵嚷;激烈的争吵;争吵;争论;吵架*/

int row = dt.jt1.getSelectedRow();// 获取点击的哪一行

String str = dt.jt1.getValueAt(row, 1).toString();

/* 1为下标,这里指的是或取第(1+1)行的文字 */


/*Message:(口信;消息;)信息(;使命;差使;电子邮件;寓意;要旨;教训;自动显示电子信息)

* Dialog:(参加)对话(;进行讨论;为(电影;戏剧)配上对白)*/


/*Option:选择(;期权;选择权;购买权;选择自由;选择能力)

* J:Java*/

JOptionPane.showMessageDialog(null, str);

}


@Override

public void mouseEntered(MouseEvent arg0) {

// TODO Auto-generated method stub


}


@Override

public void mouseExited(MouseEvent arg0) {

// TODO Auto-generated method stub


}


@Override

public void mousePressed(MouseEvent arg0) {

// TODO Auto-generated method stub


}


@Override

public void mouseReleased(MouseEvent arg0) {

// TODO Auto-generated method stub


}

}




Java:swing图书管理系统(详细个人注释版)Object类详解(2)的评论 (共 条)

分享到微博请遵守国家法律