利用JavaSwing编写一款天气数据处理器

本市的气象局需要一款筛选天气数据的软件,找到我们协会帮忙,学长将这个任务安排给了我一个人,我利用了将近一星期的时间在昨天完成,将自己独立完成的第一个项目,写成博客,将该项目中用到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个小时的时间在这个项目上,遇到问题,解决问题,然后又遇到,再解决,也因为过一个报错气的直跺脚,但是当你完成它的时候,心里有想流泪的冲动,当最后一次运行成功生成带数据的文件时,那种成就感与喜悦真的是忘不了。
我的编程路还没很长,第一个项目之后,还会有很多等着我。坚持,不放弃!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值