javaSwing的小页面虽然功能或前后端交互方面与web工程相比有不足,但在今后学习中具有启蒙的重要地位
以下是我要讲的内容(细致内容自己学习,这里只做引导)
- 项目展示(主要)
- javaSwing的布局管理器
- 监听器的魅力
- URL路径获取的图片
- ·云服务器
- 云数据库mysql8.0版本的搭建
首先来张可爱的图片镇楼
GUI的银行管理界面:
- 登入界面,账号注册,密码找回界面(图片都是网上的哦,不满意随时换,因为我存在一个类中,直接换网络图片地址就行了)
- 管理员登入:
-
用户登入:所有的数据都存在我的云数据库里面(下面控制台我把账号信息和密码信息打印出来给你们看看)
是不是觉得我的IDEA也挺炫酷的,不会的可以找我给你远程安装或者设置一下
等我注册个信息然后展示黑名单功能把,细节走起:
当用户名重复
注册成功后:管理员给他拉黑
不能登入了:
由于功能太多,这里就简单展示吧
代码量:
其实吧客户功能我还没有写完,小项目完善后代码量应该在5000左右差不多了,后期改一下,把消费记录换成转账记录,然后后期再做个网页的对比一下优缺点,敬请期待!
GET一下知识点吧
javaSwing的布局管理器
对于javaSwing的布局管理器还是挺多的,简要提一下吧,大家可以熟悉熟悉,就前三种目前用的最多,最后一种个人最喜欢用。
- FlowLayout(流式布局)
- CardLayout(卡片布局)
- GridLayout(网格布局)
- GridBagLayout(网格袋布局)
- BorderLayout(边界布局)
- SpringLayout(弹性布局)
- BoxLayout(箱式布局)
- GroupLayout(分组布局)
- 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表达式)如果想添加组件的话可以在构造方法中添加,记得布局一定要设置。
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里的
对了进入root目录中的~的命令是:sudo su进入root然后cd ~
我觉得目录结构你们必须了解:
下个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
我去输了一下命令:
这个临时密码我之前真的跪了,找了很多命令发现没有显示,结果发现原来是没有密码,直接回车就进去了,但是改密码又让我服了,原来这玩意儿版本不同,命令也不同,找了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都写一下吧,今晚上完课更新。
希望大家多多支持!
有问题大家提出,共同进步!
项目源码可以问我!