GUI(java) 今天药忘吃喽~ 2023-10-01 22:44 16阅读 0赞 ## GUI基本介绍: ## 1.GUI是什么? GUI的全称为Graphical User Interface,图形化界面或图形用户接口,是指采用图形方式显示 的计算机操作环境用户接口。与早期计算机使用的命令行界面相比,图形界面对于用户来说更为简 便易用。GUI的广泛应用是当今计算机发展的重大成就之一,它极大地方便了非专业用户的使用人 们从此不再需要死记硬背大量的命令,取而代之的是通过窗口、菜单、按键等方式来方便地进行操 作。而嵌入式GUI具有下面几个方面的基本要求:轻型、占用资源少、高性能、高可靠性、便于移 植、可配置等特点。 2.GUI被淘汰的原因:界面不够美观,需要jre环境。 3.GUI的基本组件:窗口、弹窗、面板、文本框、列表框、按钮、图片、交互组件、监听事件、鼠 标事件、键盘事件。 4.GUI的核心:AWT和Swing。 ![66fa7d645da548b69cf8bc33c6fc6276.png][] ## 2.AWT ## 1.AWT介绍:AWT是用于创建图形用户界面的一个工具包,它提供了一系列用于实现图形界面的组件,如窗口、按钮、文本框、对话框等。在JDK中针对每个组件都提供了对应的java类,这些类都位于java.awt包中。 2.组件和容器: Component类通常被称为组件,根据Component的不同作用,可将其分为基本组件类和容器类。基本组件类是诸如按钮、文本框之类的图形界面元素,而容器类则是通过Component的子类Contaier类表示容器,它是一种特殊的组件,可以用来容纳其他组件。wing ## **3.SWing** ## 1.Swing介绍: * Swing 是 Java 为图形界面应用开发提供的一组工具包,是 Java 基础类的一部分。 * Swing 包含了构建图形界面(GUI)的各种组件,如: 窗口、标签、按钮、文本框等。 * Swing 提供了许多比 AWT 更好的屏幕显示元素,使用纯 Java 实现,能够更好的兼容跨平台运行。 * 为了和 AWT 组件区分,Swing 组件在javax.swing.\*包下,类名均以 J 开头,例如: JFrame、JLabel、JButton等。 2.Swing的常用容器 <table style="width:511px;"> <tbody> <tr> <td style="text-align:center;width:205px;">组件</td> <td style="text-align:center;width:304px;">描述</td> </tr> <tr> <td style="text-align:center;width:205px;">JFrame</td> <td style="text-align:center;width:304px;">一个普通的窗口(绝大多数 Swing 图形界面程序使用 JFrame 作为顶层容器)</td> </tr> <tr> <td style="text-align:center;width:205px;">JDialog</td> <td style="text-align:center;width:304px;">对话框</td> </tr> <tr> <td style="text-align:center;width:205px;">JPanel</td> <td style="text-align:center;width:304px;">一般轻量级面板容器组件</td> </tr> <tr> <td style="text-align:center;width:205px;">JScrollPane</td> <td style="text-align:center;width:304px;">带滚动条的,可以水平和处置的面板组件</td> </tr> <tr> <td style="text-align:center;width:205px;">JSplitPane</td> <td style="text-align:center;width:304px;">分隔面板</td> </tr> <tr> <td style="text-align:center;width:205px;">JTabbedPane</td> <td style="text-align:center;width:304px;">选项卡面板</td> </tr> <tr> <td style="text-align:center;width:205px;">JLayeredPane</td> <td style="text-align:center;width:304px;">层级面板</td> </tr> <tr> <td style="text-align:center;width:205px;">JMenuBar</td> <td style="text-align:center;width:304px;">菜单栏</td> </tr> <tr> <td style="text-align:center;width:205px;">JToolBar</td> <td style="text-align:center;width:304px;">工具栏</td> </tr> <tr> <td style="text-align:center;width:205px;">JPopupMenu</td> <td style="text-align:center;width:304px;">弹出菜单</td> </tr> <tr> <td style="text-align:center;width:205px;">JInternalFrame</td> <td style="text-align:center;width:304px;">内部窗口</td> </tr> <tr> <td style="text-align:center;width:205px;">JLabel</td> <td style="text-align:center;width:304px;">标签</td> </tr> <tr> <td style="text-align:center;width:205px;">JButton</td> <td style="text-align:center;width:304px;">按钮</td> </tr> <tr> <td style="text-align:center;width:205px;">JRadioButton</td> <td style="text-align:center;width:304px;">单选按钮</td> </tr> <tr> <td style="text-align:center;width:205px;">JCheckBox</td> <td style="text-align:center;width:304px;">复选框</td> </tr> <tr> <td style="text-align:center;width:205px;">JToggleButton</td> <td style="text-align:center;width:304px;">开关按钮</td> </tr> <tr> <td style="text-align:center;width:205px;">JTextFiled</td> <td style="text-align:center;width:304px;">文本框</td> </tr> <tr> <td style="text-align:center;width:205px;">JPasswordFiled</td> <td style="text-align:center;width:304px;">密码框</td> </tr> <tr> <td style="text-align:center;width:205px;">JTextArea</td> <td style="text-align:center;width:304px;">多行文本域</td> </tr> <tr> <td style="text-align:center;width:205px;">JComboBox</td> <td style="text-align:center;width:304px;">下拉列表框</td> </tr> <tr> <td style="text-align:center;width:205px;">JList</td> <td style="text-align:center;width:304px;">列表</td> </tr> <tr> <td style="text-align:center;width:205px;">JProgressBar</td> <td style="text-align:center;width:304px;">进度条</td> </tr> <tr> <td style="text-align:center;width:205px;">JSlider</td> <td style="text-align:center;width:304px;">滑块</td> </tr> </tbody> </table> ## 4.布局管理器 ## 布局管理器分为3种: 1.流式布局(FlowLayout):按组件加入的顺序,按水平方向排列,排满一行换下一行继续排列。 2.东西南北中布局(BorderLayout):边界布局,将Container按方位分为5个区域(东西南北中),每个区域放置一个组件 3.表格布局(GridLayout):把Container按指定行列数分隔出若干网格,每一个网格按顺序放置一个控件。 ![e1d85b6343054a529f9efa0ca63d2a8f.png][] 我的第一个GUI窗口: public class Demo2Frame { public static void main(String[] args) { MyFrame myFrame1=new MyFrame(100,100,200,200,Color.BLUE); MyFrame myFrame2=new MyFrame(300,100,200,200,Color.green); MyFrame myFrame3=new MyFrame(100,300,200,200,Color.red); MyFrame myFrame4=new MyFrame(300,300,200,200,Color.PINK); } static class MyFrame extends Frame{//内部类 static int id =0; public MyFrame(int x,int y,int w,int h,Color color){ super("MyFrame"+(++id));//调用父类方法 setBounds(x,y,w,h); setBackground(color); setVisible(true); } } ![4db08063bc494c3ca02d6642139fb109.png][] **5.事件处理** ● 对于采用了图形用户界面的程序来说,事件控制是非常重要的;到目前为止,我们编写的图形用户界面程序都仅仅只是完成了界面,而没有任何实际的功能,要实现相应的功能,必须进行事件处理; ● 用户与GUI组件进行交互就会发生事件,如:按下一个按钮、用键盘输 入一个字符、点击鼠标等等; ● 当前我们要关注的并不是“事件是如何产生的”,而是讨论当发生事件后,我们应当“如何处理”。 Java中,事件处理的基本思路如下: ● 一个源(事件源)产生一个事件(事件对象)并把它送到监听器那里, 监听器只是简单地等待,直到它收到一个事件,一旦事件被接受,监听器将处理这些事件; ● 一个事件源必须注册监听器以便监听器可以接受关于一个特定事件的通知。 jButton.addActionListener(new ActionListener() { // @Override // public void actionPerformed(ActionEvent e) { // System.out.println(""); // } 事件处理大同小异,我们就不一一介绍了 ## **6.内部类** ## **1.内部类的组成:** * 成员内部类 * 静态内部类 * 局部内部类 * 匿名内部类 2.内部类的意义: * 封装性 * 实现多继承 **GUI的搭建就和搭积木一样,只有把底层搭好,一步一步的向顶层进行搭建!!!** [66fa7d645da548b69cf8bc33c6fc6276.png]: https://img-blog.csdnimg.cn/66fa7d645da548b69cf8bc33c6fc6276.png [e1d85b6343054a529f9efa0ca63d2a8f.png]: https://img-blog.csdnimg.cn/e1d85b6343054a529f9efa0ca63d2a8f.png [4db08063bc494c3ca02d6642139fb109.png]: https://img-blog.csdnimg.cn/4db08063bc494c3ca02d6642139fb109.png
还没有评论,来说两句吧...