简单界面实现
基础知识了解
- 包
在前面的学习中,我们简单地掌握了类与对象,类与类的作用关系,对于不同代码文件的整理,我们提出了包的概念,可以理解为一种文件夹,用来为代码文件分类,方便后人引用,在今天的界面实现中我们会大量地调用包。 - IDEA环境下包的建立
1.在scr文件上右键,点击new;
2.点击package;
3.设置包名;
注意:在过程如果没有找到package或者建立包后没有找到建立类的选项时可以参考这篇文章:解决:Idea中创建包 - 包的调用方法
包的调用是在使用的类之前,使用关键字“import”,格式为“import 包名.调用的属性或方法名”,对于“调用的属性或方法名”,如果我们想任意地调用包中的方法或属性,可以用“*”代替,我们以下面的伪代码书写说明。
package logIn;
import javax.swing.*;//javax包调用
public class login{//想要调用javax包的类
- 界面的基本元素
界面的基本元素主要有三大类,第一类是可视化组件,包括输入框,关闭框,按键和标签等直观的元素;第二类是为可视化组件服务的元素规则,例如按键的大小尺寸,颜色,摆放布局(就是各个可视化组件的位置);第三类是界面的内容,包括字符串,图片,视频,音频等等。在下面我们将逐步讲解每一类元素的实现。
开工!建立自己的第一个界面
本次界面的实现依赖于两个包,一是javax.swing,二是java.awt,简单来说,两个包都是界面开发使用包,可以实现基本元素的创建。
我们以建立登录界面为例,在整体框架上,我们采用一个界面方法和一个主函数辅助对象的方式来实现。在此我们先解决辅助对象,假定我们的界面建立的方法名为InitUI,辅助对象的书写如下:
public static void main(String[] args) {
login loginin =new login();//login 为类名
loginin.InitUI();//InitUI 为在上面定义的方法名(下面会讲解到)
}
对于方法的建立,我们主要分为几个可视化组件的实现:窗体;登录,账户和密码的标签和输入框;按钮;图片。窗体的设置包含窗体元素和窗体尺寸,布局,名称和关闭框,代码及注释如下:
JFrame jf = new JFrame();//建立窗体对象
jf.setTitle("登录界面");//setTitle以及之后jf.后均为包中特有的方法名,此处为设置名字
jf.setSize(595,567*2);//设置尺寸(左右参数分别为宽长和高度)
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭窗,此处JFrame.EXIT_ON_CLOSE为包内属性,直接照抄
FlowLayout flow =new FlowLayout();//设置流体对象
jf.setLayout(flow);//布局设置,此处为流体设置(窗口缩小或放大都居中,有多个可视化组件时按照其在代码中的顺序依次从左到右排列)
对于账户和密码的名称和输入框的建立,依赖于标签的实现,这里没有需要特别关注的地方,大致和上面类似,这里直接贴代码。
JLabel namejla =new JLabel();//设置一个账户名称标签(标签不可点击)
JLabel pwdjla =new JLabel();
JTextField jtf=new JTextField();//设置名称输入框
JPasswordField jpw=new JPasswordField();
Dimension dim=new Dimension(595,50);//注意此处与窗体设置尺寸有所区别
jtf.setPreferredSize(dim);//输入框设置尺寸
jpw.setPreferredSize(dim);
namejla.setText("账户名称");//设置内容
pwdjla.setText("密码");
按钮与标签区别之处在于按钮是可以被点击的,实现类似,继续贴代码。
JButton jb =new JButton();//按钮建立
jb.setText("登录");//内容设置
最后是复杂的图形建立,我们先说说一种图片路径的寻找。
1.把图片文件放置在桌面,右键点击属性;
2.对路径,文件名,文件类型进行复制
代码实现以及细节注释如下:
JLabel img =new JLabel();
ImageIcon ImgIc =new ImageIcon("C:\\Users\\Lenovo\\Desktop\\picture.png");
//文件名为字符串,记得加双引号,或者设置一个字符串对象,然后带入
// "\"要双写,为了使原本的一个“\”显示
//格式是“路径\\文件名。文件类型”
img.setIcon(ImgIc);//图形属于一种特殊内容,
//需要借助标签,在标签内容设置方法中实现
最后,距离大功告成只剩一步,把这些组件可视化,注意不是所有对象可视化,区分好辅助对象和所需对象,例如在图形实现过程中ImgIc对象是图形路径的辅助对象,不需要被可视化,意思是我们不用在界面上看到图片路径或者其他抽象的东西,可视化实现如下:
jf.add(img);
jf.add(namejla);
jf.add(jtf);
jf.add(pwdjla);
jf.add(jpw);
jf.add(jb);//加入可视化元素(注意有顺序)
jf.setVisible(true);//确定可视化
我们把总码贴下:
package logIn;
import javax.swing.*;
import java.awt.*;
public class login{
public void InitUI(){
JFrame jf = new JFrame();
jf.setTitle("登录界面");
jf.setSize(595,567*2);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
FlowLayout flow =new FlowLayout();
jf.setLayout(flow);
JLabel namejla =new JLabel();
JLabel pwdjla =new JLabel();
JTextField jtf=new JTextField();
JPasswordField jpw=new JPasswordField();
Dimension dim=new Dimension(595,50);
jtf.setPreferredSize(dim);
jpw.setPreferredSize(dim);
JButton jb =new JButton();
JLabel img =new JLabel();
ImageIcon ImgIc =new ImageIcon("C:\\Users\\Lenovo\\Desktop\\picture.png");
img.setIcon(ImgIc);
jb.setText("登录");
namejla.setText("账户名称");
pwdjla.setText("密码");
jf.add(img);
jf.add(namejla);
jf.add(jtf);
jf.add(pwdjla);
jf.add(jpw);
jf.add(jb);
jf.setVisible(true);
}
public static void main(String[] args) {
login loginin =new login();
loginin.InitUI();
}
}
效果图如下:
至此,我们完成了简单界面的建立,关于多界面的跳转和功能实现,我们将在后续进行学习。
注意事项:
1.尺寸的调节,窗体最好以图片尺寸为参考,这样效果好点;
2.我这里的图片来自自己电脑截屏,其他文件形式没有影响,需要自行修改此处路径;