hello!大家好,今天的小教程又来啦。
今天让大家接触一下java中的界面编程(java图形界面开发)。
Java的图形界面基本所有组件都在swing这个包中,swing包为我们提供了构建图形界面的各种组件,包括窗口、标签、按钮、文本框,文本域等等。通过这个包,我们可以实现很多复杂的界面编程,做出来的界面也十分好看。
咱们今天的小案例没有特别复杂,功能很简单,界面也很简洁。一起来看看吧。
创建顶层窗口容器
就像这样
这段代码创建了界面的最底层的窗口,基本上后面的所有组件以及其他扩展都会在这个上面不断的嵌套组合。就像是修房子一样,这是地基。
创建中间容器
就像这样
中间容器充当基本组件的载体,不可独立显示。中间容器可以添加若干基本组件(也可以嵌套添加中间容器),对容器内的组件进行管理,类似于给各种复杂的组件进行分组管理。最顶层的一个中间容器必须依托在顶层容器(窗口)内。
创建基本组件并添加到面板上
就像这样
这里创建了按钮和文本框两种基本容器,当吧这里的基本组件添加到面板之中的时候,其实界面中就已经存在了着两个组件,但是运行的时候还是看不见,这是因为还没有打开它的可见性。咱们往后看!
设置事件监听
事件监听简直就是界面程序的精髓,在手机中我们的app有很对的按钮或者滑块,当我们点击或者移动滑块就会触发相应的事件完成不同的任务。其实他们很多都是使用事件监听这个原理。简单的事件监听如下图
这里我对上面面板中的两个按钮都添加了事件监听。点击按钮一会吧字体颜色变为红色
点击按钮二会把字体颜色变为蓝色。这里其实是实现了一个接口!(接口是什么,咱么在以后的基础教程里逐一发出来!)
添加面板到顶层容器并设置可见
就像这样
当我们完成了以上所有的布局了之后,我们就可以把面板添加到容器之中,最后设置界面是可见的。当完成这一步之后,我们运行程序就能看见界面啦。
运行结果
点击红色按钮,文本变成了红色
点击蓝色按钮,文本编程蓝色
总结
Java界面编程相对于前端界面来讲,肯定要繁琐和复杂一些,但是只要弄懂其中原理,就并不是那么的难。java图形界面虽然是java语言的一部分呢,但是它也是一个很系统的知识。希望这个小案例可以勾起大家学习编程的兴趣。图形编程还涉及到很多布局方式,很多事件处理,很多特效设计。不是一时半会儿能搞定的,希望有兴趣的朋友每天学习一小点,和我一起成长。
如果您觉得本文写的不错,欢迎点赞+转发+收藏+关注一条龙哦!
源码
package homework; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.WindowConstants; public class Five_1 { public static void main(String[] args) { // 1. 创建一个顶层容器(窗口) JFrame jf = new JFrame("测试窗口"); // 创建窗口 jf.setSize(250, 250); // 设置窗口大小 jf.setLocationRelativeTo(null); // 把窗口位置设置到屏幕中心 jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); // 当点击窗口的关闭按钮时退出程序(没有这一句,程序不会退出) // 2. 创建中间容器(面板容器) JPanel panel = new JPanel(); // 创建面板容器,使用默认的布局管理器 // 3. 创建一个基本组件(按钮),并添加到 面板容器 中 Color red = new Color(255, 0, 0);//创建红色 Color bule = new Color(0,205,205);//创建蓝色 JButton btn1 = new JButton("红色");//创建一个按钮对象 值为红色 JButton btn2 = new JButton("蓝色");//创建一个按钮对象 现实蓝色 JTextField ta = new JTextField("这是一段测试文本!"); panel.add(btn1);//把按钮添加到面板之中 panel.add(btn2); panel.add(ta);//把文版狂添加到面板之中 btn1.addActionListener(new ActionListener() {//设置按钮一的事件监听 @Override public void actionPerformed(ActionEvent e) { ta.setForeground(red); //点击按钮会把文字设置成为红色 } }); btn2.addActionListener(new ActionListener() {//设置按钮二的事件监听 @Override public void actionPerformed(ActionEvent e) { ta.setForeground(bule);//点击按钮会把文字设置为蓝色 } }); // 4. 把 面板容器 作为窗口的内容面板 设置到 窗口 jf.setContentPane(panel); // 5. 显示窗口,前面创建的信息都在内存中,通过 jf.setVisible(true) 把内存中的窗口显示在屏幕上。 jf.setVisible(true); } }