本市的气象局需要一款筛选天气数据的软件,找到我们协会帮忙,学长将这个任务安排给了我一个人,我利用了将近一星期的时间在昨天完成,将自己独立完成的第一个项目,写成博客,将该项目中用到JavaSwing编程和Java连接SQLServer2005的知识点进行总结,并回味一下自己这一个星期来的喜怒哀乐。
1、如何实现登录界面和成功界面的切换
其实这功能很好实现,在这个软件中,分为两个界面。
登入界面根据用户输入的IP地址实现远程连接数据库,登入成功后会自动跳转到第二个界面。代码如下:
//使用一个JFrame来容纳两个JPanel容器
public Win() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 938, 464);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
login = new Login();
login.setBounds(0, 0, 912, 415);
contentPane.add(login);
//先将登录界面设置为可视
login.setVisible(true);
}
//经过筛选语句,登录成功,将登录成功界面加入JFrame容器中
Success success = new Success();
success.setBounds(0, 0, 2000, 2000);
Win.contentPane.add(success);
JOptionPane.showMessageDialog(null, "欢迎!", "提示",
JOptionPane.INFORMATION_MESSAGE);
//成功界面可见,登录界面不可见
success.setVisible(true);
Win.login.setVisible(false);
2、SQLServer2005数据库连接问题
重来没用过这款数据库,而且2005版本在Win10操作系统下因为兼容问题不能正常运行。现在简单将Java连接SQLServer2005数据库的过程告诉大家。
首先下载好Java连接SQLServer2005所需要的第三方JAR包sqljdbc4.jar,看好你的虚拟机版本,1.5上下存在划分。然后放到项目的lib文件夹下,鼠标右键BuildPath。
Java远程连接数据库的代码如下:
Class.forName(Infor.getP().getProperty("driverClass"));
Connection conn = DriverManager.getConnection("jdbc:sqlserver://"
+ Infor.getP().getProperty("IP") + ":1433;databaseName="
+ Infor.getP().getProperty("数据库"), Infor.getP()
.getProperty("username"),
Infor.getP().getProperty("password"));
如果你想连接本地数据库,你把IP换成localhost即可。注意,想实现远程数据库连接,数据库的TCP连接必须打开,且两台电脑要在一个IP的不同端口下。
3、利用properties实现配置文件
将一些用户可能需要修改的数据放在配置文件中,然后利用properties流实现对文件的读取和修改。代码如下:
//设置用户可能更改的数据
try (BufferedWriter bw = new BufferedWriter(new FileWriter("db.txt"))) {
p.setProperty("IP", IPvalue);
p.setProperty("username", username);
p.setProperty("password", password);
p.setProperty("数据库", database);
p.store(bw, null);
} catch (IOException e) {
e.printStackTrace();
}
//读取配置文件
p = new Properties();
try (
//没有文件时,先创建文件
FileWriter w =new FileWriter("db.txt");
BufferedReader br = new BufferedReader(new FileReader("db.txt"))) {
p.load(br);
} catch (Exception e) {
e.printStackTrace();
}
其实整个软件并没有什么难度,但对于刚接触编程的我来说,第一次独自完成一个有用户提出需求的软件还是颇有一番感慨!
说实话这一个星期很累,每天花费近10个小时的时间在这个项目上,遇到问题,解决问题,然后又遇到,再解决,也因为过一个报错气的直跺脚,但是当你完成它的时候,心里有想流泪的冲动,当最后一次运行成功生成带数据的文件时,那种成就感与喜悦真的是忘不了。
我的编程路还没很长,第一个项目之后,还会有很多等着我。坚持,不放弃!