JavaSwing真的过时了吗?请不要忽略了它的启蒙作用

javaSwing的小页面虽然功能或前后端交互方面与web工程相比有不足,但在今后学习中具有启蒙的重要地位

以下是我要讲的内容(细致内容自己学习,这里只做引导)

  • 项目展示(主要)
  • javaSwing的布局管理器
  • 监听器的魅力
  • URL路径获取的图片
  • ·云服务器
  • 云数据库mysql8.0版本的搭建

首先来张可爱的图片镇楼

JavaSwing真的过时了吗?请不要忽略了它的启蒙作用_第1张图片
GUI的银行管理界面:

  • 登入界面,账号注册,密码找回界面(图片都是网上的哦,不满意随时换,因为我存在一个类中,直接换网络图片地址就行了)
  • 管理员登入:
    -JavaSwing真的过时了吗?请不要忽略了它的启蒙作用_第2张图片
    用户登入:所有的数据都存在我的云数据库里面(下面控制台我把账号信息和密码信息打印出来给你们看看)
    是不是觉得我的IDEA也挺炫酷的,不会的可以找我给你远程安装或者设置一下
    JavaSwing真的过时了吗?请不要忽略了它的启蒙作用_第3张图片
    等我注册个信息然后展示黑名单功能把,细节走起:
    JavaSwing真的过时了吗?请不要忽略了它的启蒙作用_第4张图片
    JavaSwing真的过时了吗?请不要忽略了它的启蒙作用_第5张图片
    当用户名重复
    JavaSwing真的过时了吗?请不要忽略了它的启蒙作用_第6张图片
    注册成功后:管理员给他拉黑
    JavaSwing真的过时了吗?请不要忽略了它的启蒙作用_第7张图片
    不能登入了:
    JavaSwing真的过时了吗?请不要忽略了它的启蒙作用_第8张图片
    由于功能太多,这里就简单展示吧
    代码量:
    JavaSwing真的过时了吗?请不要忽略了它的启蒙作用_第9张图片
    其实吧客户功能我还没有写完,小项目完善后代码量应该在5000左右差不多了,后期改一下,把消费记录换成转账记录,然后后期再做个网页的对比一下优缺点,敬请期待!

GET一下知识点吧

javaSwing的布局管理器

对于javaSwing的布局管理器还是挺多的,简要提一下吧,大家可以熟悉熟悉,就前三种目前用的最多,最后一种个人最喜欢用。

  1. FlowLayout(流式布局)
  2. CardLayout(卡片布局)
  3. GridLayout(网格布局)
  4. GridBagLayout(网格袋布局)
  5. BorderLayout(边界布局)
  6. SpringLayout(弹性布局)
  7. BoxLayout(箱式布局)
  8. GroupLayout(分组布局)
  9. null(绝对布局)

这是一些优秀的博主整理过的,我觉得很不错就给大家分享了。
当然我想说的是绝对布局了, 是不是有小伙伴在定义坐标的时候很麻烦,还要时不时运行看位置。这里展示一下鼠标监听器来找坐标位置(方法体如下)

  JFrame j = new JFrame("鼠标监听器");
        j.setSize(600, 400);
        j.setLocationRelativeTo(null);
        j.addMouseListener(new MouseAdapter() {
     
            @Override
            public void mouseClicked(MouseEvent e) {
     
                System.out.println("x="+e.getX()+",y="+e.getY());
            }
        });
        j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        j.setVisible(true);

这个适配器为了大家都看得懂还是全写了,写Lambda表达式简洁一点

监听器的魅力

个人觉得启发作用最大的还是监听器了,以后做web工程,少不了与它打交道,在纯java语言中,javaSwing可为我们展示监听器的不少类型。
在我们的实现方法体中可以写窗口的销毁并跳转,还有就是直接写类,方法的调用,来响应对应的事件。(对应在HTLM锚点a标签放链接的效果,然后写javaScript代码来响应)
总的来说,监听器不过是代码间接与用户沟通的桥梁。当然在web工程中监听器的作用可不仅仅与用户沟通。

URL获取图片

这里我把绘制背景图片的代码展示一下:(用的内部类,为了好看不建议这么写类)结合上面讲的跳转界面,代码一起给了,得到第二个窗口的小姐姐需要点击第一个窗口哦。(为了照顾初学者也不用Lamabda表达式)如果想添加组件的话可以在构造方法中添加,记得布局一定要设置。

JavaSwing真的过时了吗?请不要忽略了它的启蒙作用_第10张图片

package pure_Swing;

import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.net.URL;
public class Swing001 {
     
    public static void main(String[] args) {
     
        JFrame j = new JFrame("第一个窗口");
        j.setSize(600, 400);
        j.setLocationRelativeTo(null);
        j.setLayout(null);
        j.addMouseListener(new MouseAdapter() {
     
            @Override
            public void mouseClicked(MouseEvent e) {
     
                j.dispose();
                JFrame jf=new JFrame("第二个窗口");
                jf.setSize(500,400);
                jf.setLocationRelativeTo(null);
                jf.add(new jpanel());
                jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                jf.setVisible(true);
            }
            class jpanel extends JPanel{
     
                URL u;
                Image image;
                public jpanel(){
     
                    try {
     
                        this.u=new URL("https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1389614187,1194186975&fm=26&gp=0.jpg");
                        this.image= ImageIO.read(u);
                    }catch (Exception e){
     
                        e.printStackTrace();
                    }
                }
                @Override
                public void paint(Graphics g) {
     
                    g.drawImage(image,0,0,500,400,null);
                }
            }
        });
        j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        j.setVisible(true);
    }
}
  • 自己电脑上的数据库让别人访问不方便,这时候就可以租个云服务器啦,然后按装自己的数据库,如果你愿意直接租个云数据库也没问题,但功能方面可能有些不足。
  • 这里需要准备两个工具,Xshell和winSCP或者Xftp。
  • 服务器在腾讯云或者阿里云都可以租的到,新用户有优惠而且24岁以下好像默认学生优惠。
  • 之前我租了个一个月的云服务器还租了一年域名,想备案一下,结果客服说至少租三个月,服了!
  • 看一下服务器吧!做小项目够用了。

这里是Xshell里的JavaSwing真的过时了吗?请不要忽略了它的启蒙作用_第11张图片
JavaSwing真的过时了吗?请不要忽略了它的启蒙作用_第12张图片
对了进入root目录中的~的命令是:sudo su进入root然后cd ~
我觉得目录结构你们必须了解:
JavaSwing真的过时了吗?请不要忽略了它的启蒙作用_第13张图片
下个winSCP或者Xftp连接云服务器就可以看到了
云服务器怎么初始化配置你可以咨询客服或者找教程,都是比较简单的

云数据库mysql8.0版本的搭建

下载安装包命令

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarh.rpm

安装rmp命令

yum -y install mysql57-community-release-el7-10.noarch.rpm

安装mysql服务:

yum -y install mysql-community-server

启动mysql

systemctl start mysqld.service

查看mysql运行状态

systemctl status mysqld.service

我去输了一下命令:
JavaSwing真的过时了吗?请不要忽略了它的启蒙作用_第14张图片
这个临时密码我之前真的跪了,找了很多命令发现没有显示,结果发现原来是没有密码,直接回车就进去了,但是改密码又让我服了,原来这玩意儿版本不同,命令也不同,找了mysql8.0的改密码命令才成功!!!

  • 如果有临时密码,试试这个命令
grep "password"/var/long/mysqld.log

没有显示就可能没有密码,直接回车登入就行了,忽略掉输密码
登入命令:

mysql -uroot -p

可以这样简化登入输入,如果版本不同的你搜一下其他命令
mysql8.0不能用以前修改密码的命令了
修改密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';

那个密码是你自己定义输入的,看见没有mysql8.0版本根本就没有默认密码,修改语句都看出来了。

注:以上命令均为参考各位博主的资料整合,如果命令不行,可能是我打错了或者你打错了。

因为我赶时间去上课,有不足的地方大家提出来,我回来继续修复和更新更多的内容,然后在展示一下 intelliJ IDEA连接云数据库的细节。

这篇博文目的在于简单了解数据交互机制,javaSwing也是当入门级工具使用。
然后我把Maven和JDBC都写一下吧,今晚上完课更新。
希望大家多多支持!
有问题大家提出,共同进步!
项目源码可以问我!

QQ:2311457399

你可能感兴趣的:(java,mysql)