一,完成了 数据内部的 分页操作
二,实现GUI 窗口。
1,按钮:首页 下一页 上一页 尾页
2,textarea 分页显示。每页显示5个数据。
注意点:
1,三个类。
2,我的mysql user=root password=root,
配置文件的路径:inputFile = new FileInputStream("src/test20100624_pages/p2.properties");
要根据实际情况进行修改。
大家可以根据自己的情况修改。
知识点:
一,配置文件:
Properties p2 = new Properties();
p2.load(inputFile);
String value = p2.getProperty(key);
conn = DriverManager.getConnection(url,p2);
二,ResultSet 的各个方法:
String sql2 = "select * from student order by sid";
rs = comm.executeQuery(sql2);
return rs;
rs.last();
totalsize = rs.getRow();
rs.absolute(i);
——————————linkDB.java————————————————————————
package test20100624_pages;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Properties;
public class linkDB {
Properties p2 = new Properties();
ArrayList<student> arrayS = null;
final int per_pages_size=5;
void connect_properties() {
FileInputStream inputFile;
try {
inputFile = new FileInputStream(
"src/test20100624_pages/p2.properties");
try {
p2.load(inputFile);
// System.out.println("测试properties:"+p2);
// 测试properties:{max=1000, user=root, password=root, min=999}
// 测试properties:{max=1000, user=root, password=root, min=999}
} catch (IOException e) {
//
e.printStackTrace();
}
} catch (FileNotFoundException e2) {
//
e2.printStackTrace();
}
}
public String getValue(String key) {
if (p2.containsKey(key)) {
String value = p2.getProperty(key);// 得到某一属性的值
return value;
} else
return "没有该属性";
}
public Connection getConnection2() {
String url = "jdbc:mysql://localhost:3306/test_jdbc?useUnicode=true&characterEncoding=gbk";
this.connect_properties();
String user = this.getValue("user");
String DbPassword = this.getValue("password");
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
//conn = DriverManager.getConnection(url, user, DbPassword);
conn = DriverManager.getConnection(url,p2);
} catch (SQLException e) {
System.out.println("SQL 异常");
e.printStackTrace();
} catch (ClassNotFoundException e) {
System.out.println("数据库没有找到");
e.printStackTrace();
}
return conn;
}
public ResultSet getAllStudent_info() {
Connection conn = this.getConnection2();
Statement comm = null;
ResultSet rs = null;
try {
comm = conn.createStatement();
String sql2 = "select * from student order by sid";
// select * from student order by sid;
rs = comm.executeQuery(sql2);
return rs;
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
public int getPagesTotalSize() {
ResultSet rs = this.getAllStudent_info();
int totalsize = 0;
try {
rs.last();
// System.out.println("ResultSet的总大小大小" + rs.getRow());
totalsize = rs.getRow();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return totalsize;
}
public int getPagesNum() {
int totalsize = (Integer)this.getPagesTotalSize()/per_pages_size;
return (totalsize+1);
}
public ArrayList<student> get_per_Page(int per_pages_num) {
ResultSet rs = this.getAllStudent_info();
ArrayList<student> arrayS = new ArrayList();
int totalsize = this.getPagesTotalSize();
int sid = 0;
String sname = null;
String spassword = null;
if (per_pages_size * (per_pages_num - 1) < totalsize) {
int start = per_pages_size * (per_pages_num - 1) + 1;
int end = 0;
if (per_pages_size * per_pages_num > totalsize) {
end = totalsize;
} else {
end = per_pages_size * per_pages_num;
}
for (int i = start; i <= end; i++) {
try {
rs.absolute(i);
sid = rs.getInt(1);
sname = rs.getString(2);
spassword = rs.getString(3);
student s = new student(sid, sname, spassword);
arrayS.add(s);
} catch (SQLException e) {
e.printStackTrace();
}
}
} else {
System.out.println("超出范围");
}
return arrayS;
}
public void test_per_page(int id) {
ArrayList<student> arrayS = this.get_per_Page(id);
for (Iterator i = arrayS.iterator(); i.hasNext();) {
student s = (student) i.next();
s.showStudentInfo();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
// 测试:数据库连接
linkDB sdl = new linkDB();
// l.getAllStudent_info();
// 测试:数据库表 大小
System.out.println("ResultSet的总大小大小" + sdl.getPagesTotalSize());
// 测试:显示 第一页和第三页的信息,还有最后一页,加上超出范围的情况。
// 一共是18个信息,每页5个。最多是4页。
System.out.println("第一页");
sdl.test_per_page(1);
System.out.println("第三页");
sdl.test_per_page(3);
System.out.println("最后一页");
sdl.test_per_page(4);
System.out.println("超出范围情况");
sdl.test_per_page(5);
System.out.println("异常情况");
sdl.test_per_page(-1);
}
}
——————mainPages.java————————————————
package test20100624_pages;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import java.util.Iterator;
public class mainPages extends Frame {
private int currentlyPage = 1;
private Panel center, bottom;
private Button previously, next, first, tail;
private TextArea ta;
private linkDB ldb = new linkDB();
ArrayList<student> arrayS = null;
public mainPages() {
this.previously = new Button("上一页");
this.next = new Button("下一页");
this.first = new Button("首页");
this.tail = new Button("尾页");
this.ta = new TextArea();
ta.setRows(5);
ta.setBounds(0, 0, 40, 20);
this.initialization();
this.center = new Panel(new GridLayout(1, 1));
this.bottom = new Panel(new GridLayout(1, 4));
center.add(ta);
bottom.add(previously);
bottom.add(next);
bottom.add(first);
bottom.add(tail);
MyListener ml = new MyListener();
this.previously.addActionListener(ml);
this.next.addActionListener(ml);
this.first.addActionListener(ml);
this.tail.addActionListener(ml);
// this.add(center,BorderLayout.NORTH);不知是何原因?这样的话,显示不bottom。可能和BorderLayout有关系。
this.add(center, BorderLayout.CENTER);
this.add(bottom, BorderLayout.SOUTH);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
setVisible(false);
dispose();
System.exit(0);
}
});
this.setBounds(200, 200, 350, 180);
// this.setResizable(false);
this.setVisible(true);
}
void initialization() {
arrayS = ldb.get_per_Page(currentlyPage);
for (Iterator i = arrayS.iterator(); i.hasNext();) {
student s = (student) i.next();
ta.append(s.getStudentInfo());
}
}
public void next() {
currentlyPage++;
arrayS = ldb.get_per_Page(currentlyPage);
for (Iterator i = arrayS.iterator(); i.hasNext();) {
student s = (student) i.next();
ta.append(s.getStudentInfo());
}
}
public void previous() {
currentlyPage--;
arrayS = ldb.get_per_Page(currentlyPage);
for (Iterator i = arrayS.iterator(); i.hasNext();) {
student s = (student) i.next();
ta.append(s.getStudentInfo());
}
}
class MyListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
ta.setText("");
if (e.getSource() == previously) {
if (currentlyPage >= 2) {
currentlyPage--;
} else {
ta.append("当前为第一页!\n");
}
arrayS = ldb.get_per_Page(currentlyPage);
for (Iterator i = arrayS.iterator(); i.hasNext();) {
student s = (student) i.next();
ta.append(s.getStudentInfo());
}
} else if (e.getSource() == next) {
ta.setText("");
int pagesNum = ldb.getPagesNum();
if (currentlyPage < pagesNum) {
currentlyPage++;
} else {
ta.append("当前为最后一页!\n");
}
arrayS = ldb.get_per_Page(currentlyPage);
for (Iterator i = arrayS.iterator(); i.hasNext();) {
student s = (student) i.next();
ta.append(s.getStudentInfo());
}
} else if (e.getSource() == first) {
ta.setText("");
currentlyPage = 1;
arrayS = ldb.get_per_Page(currentlyPage);
for (Iterator i = arrayS.iterator(); i.hasNext();) {
student s = (student) i.next();
ta.append(s.getStudentInfo());
}
} else if (e.getSource() == tail) {
ta.setText("");
currentlyPage = ldb.getPagesNum();
arrayS = ldb.get_per_Page(currentlyPage);
for (Iterator i = arrayS.iterator(); i.hasNext();) {
student s = (student) i.next();
ta.append(s.getStudentInfo());
}
}
}
}
public static void main(String[] args) {
mainPages mp = new mainPages();
}
}
—————————student.java—————————————————————————
package test20100624_pages;
public class student {
private int sid;
private String sname;
private String spassword;
public student(int sid, String sname, String spassword) {
this.sid = sid;
this.sname = sname;
this.spassword = spassword;
}
public void setSid(int sid) {
this.sid = sid;
}
public void setSname(String sname) {
this.sname = sname;
}
public void setSpassword(String spassword) {
this.spassword = spassword;
}
public int getSid() {
return this.sid;
}
public String getSname() {
return this.sname;
}
public String getSpassword() {
return this.spassword;
}
public void showStudentInfo() {
System.out.println("学号" + this.getSid() + "姓名" + this.getSname()
+ "密码:" + this.getSpassword());
}
public String getStudentInfo() {
return "学号" + this.getSid() + "姓名" + this.getSname() + "密码:"
+ this.getSpassword()+"\n";
}
}
————————————————————————————————
/*SQL 语句,导入就行了。
drop database test_jdbc;
create database test_jdbc;
use test_jdbc;
create table student
(sid int not null,
sname varchar(50),
spassword varchar(20),
primary key(sid)
);
insert into student values('1','科比','24');
insert into student values('2','加内特','5');
insert into student values('3','艾弗森','23');
insert into student values('11','德罗巴','24');
insert into student values('12','罗尼','5');
insert into student values('13','克里斯蒂亚诺 诺那尔多','23');
insert into student values('21','梅西','24');
insert into student values('22','比利亚','5');
insert into student values('23','哈维','23');
insert into student values('31','麦孔','24');
insert into student values('32','埃弗拉','5');
insert into student values('33','费尔南德斯','23');
insert into student values('41','维迪奇','24');
insert into student values('42','卡西利亚斯','5');
insert into student values('43','詹姆斯','23');
insert into student values('51','韦德','24');
insert into student values('52','姚明','5');
insert into student values('53','邓肯','23');
insert into course values('1','计算机网络','40');
insert into course values('2','软件工程','40');
insert into course values('3','操作系统','40');
insert into course values('4','毛概','40');
insert into course values('5','日语','40');
insert into course values('6','编译原理','40');
insert into course values('7','程序实践4','40');
insert into course values('8','实践考核2','40');
*/
分享到:
相关推荐
NULL 博文链接:https://jayxigua.iteye.com/blog/698839
JAVA图形编程(AWT+SWING),包括AWT和SWING两部分。很不错的学习资料,全面,细致,和大家一起分享。
Java的GUI设计-AWT基础-窗口类-AWT基本组-bb--Read.ppt该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~
java 图形编程 awt-swing java 图形编程 awt-swing
JAVA教程5--AWT图形界面设计
java3think in java笔记(111)---打印 (2008-04-24 16:58:28) 标签:杂谈 1 默认情况下,print()方法会调用paint()来完成自己的工作。 2 选择一种字体和大小,决定字符串在页面上存在的位置,并且使用Graphics...
Java计算器源代码 awt+swing图形界面.doc
使用java.awt实现的学生管理系统界面。一共分四步,第一步实现了登录界面布局;第二步实现了登录验证和主界面布局;第三步实现了学生信息的增删改查;最后实现了学生信息的永久保存。
网络 上 存 在的大量的Java程序都需要Java虚拟机提供图形化的界面,比如说现在特别 流行的Java游戏.Java应用程序接口(Java Application Interface)所提供的最基本的图形类库 称为抽象图形T具包(Abstract Windows ...
我们本次的Java课程设计的最终目标是实现一个图书馆管理系统,使其具有一般图书管理系统所具有的功能,可以实现读者登录、新书入库、书籍查询、书籍修改和删除等功能。因为Java是一门很优秀的编程语言,具有面向对象...
java:awt中的一些类及他们的用法和一些组件。
java awt swt swing gui 教程 pdf
( Java awt+ Socket编程+多线程+人机对战实现)。 五子棋是起源于中国古代的传统黑白棋种,是一款老少皆宜的益智类游戏。它既有现代游戏蕴含的短、平、快”的特点,又有中国古典哲学蕴含的“阴阳易理”。常玩此款游戏既...
传智播客_Java培训_毕向东_Java基础[08-GUI]系黑马程序员_毕向东_Java基础视频教程 GUI •Graphical User Interface(图形用户接口)。...Java为GUI提供的对象都存在java.Awt和javax.Swing两个包中。
java GUI awt 实现鼠标绘制矩形,鼠标拖动矩形,鼠标改变矩形大小功能. 其它图形的绘制方法参考: https://blog.csdn.net/xietansheng/article/details/55669157
-server -Xmx512m -XX:MaxPermSize=128m -Djava.awt.headless=true -Drebel.spring_plugin=true -noverify -javaagent:D:\apps\jrebel6.4.3\jrebel.jar -Xbootclasspath/p:D:/apps/jrebel6.4.3/rebelboot.jar -...
里面含有有关AWT的相关例子,希望对初学JAVA的同学有一定有帮助,大家以后记得多传资源
awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android ...
用AWT把实现的JAVA计算器
CoreJava DAY06 类的加载过程、实例化、继承、多态 20 CoreJava DAY07修饰符 26 CoreJava DAY08 常用类 29 CoreJava DAY09 高级语言特征 30 CoreJava DAY10 主方法,静态导入,包装类,枚举 32 CoreJava DAY11 内部...