GUI(java)

GUI基本介绍:

1.GUI是什么?

  GUI的全称为Graphical User Interface,图形化界面或图形用户接口,是指采用图形方式显示
的计算机操作环境用户接口。与早期计算机使用的命令行界面相比,图形界面对于用户来说更为简
便易用。GUI的广泛应用是当今计算机发展的重大成就之一,它极大地方便了非专业用户的使用人
们从此不再需要死记硬背大量的命令,取而代之的是通过窗口、菜单、按键等方式来方便地进行操
作。而嵌入式GUI具有下面几个方面的基本要求:轻型、占用资源少、高性能、高可靠性、便于移
植、可配置等特点。
2.GUI被淘汰的原因:界面不够美观,需要jre环境。

3.GUI的基本组件:窗口、弹窗、面板、文本框、列表框、按钮、图片、交互组件、监听事件、鼠

标事件、键盘事件。

4.GUI的核心:AWT和Swing。

 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的常用容器

组件描述
JFrame一个普通的窗口(绝大多数 Swing 图形界面程序使用 JFrame 作为顶层容器)
JDialog对话框
JPanel一般轻量级面板容器组件
JScrollPane带滚动条的,可以水平和处置的面板组件
JSplitPane分隔面板
JTabbedPane选项卡面板
JLayeredPane层级面板
JMenuBar菜单栏
JToolBar工具栏
JPopupMenu弹出菜单
JInternalFrame内部窗口
JLabel标签
JButton按钮
JRadioButton单选按钮
JCheckBox复选框
JToggleButton开关按钮
JTextFiled文本框
JPasswordFiled密码框
JTextArea多行文本域
JComboBox下拉列表框
JList列表
JProgressBar进度条
JSlider滑块

4.布局管理器

布局管理器分为3种:

1.流式布局(FlowLayout):按组件加入的顺序,按水平方向排列,排满一行换下一行继续排列。

2.东西南北中布局(BorderLayout):边界布局,将Container按方位分为5个区域(东西南北中),每个区域放置一个组件

3.表格布局(GridLayout):把Container按指定行列数分隔出若干网格,每一个网格按顺序放置一个控件。

 我的第一个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);
        }

    }

 5.事件处理

对于采用了图形用户界面的程序来说,事件控制是非常重要的;到目前为止,我们编写的图形用户界面程序都仅仅只是完成了界面,而没有任何实际的功能,要实现相应的功能,必须进行事件处理;

用户与GUI组件进行交互就会发生事件,如:按下一个按钮、用键盘输 入一个字符、点击鼠标等等;

当前我们要关注的并不是“事件是如何产生的”,而是讨论当发生事件后,我们应当“如何处理”。

Java中,事件处理的基本思路如下:

一个源(事件源)产生一个事件(事件对象)并把它送到监听器那里, 监听器只是简单地等待,直到它收到一个事件,一旦事件被接受,监听器将处理这些事件;

一个事件源必须注册监听器以便监听器可以接受关于一个特定事件的通知。

jButton.addActionListener(new ActionListener() {
//            @Override
//            public void actionPerformed(ActionEvent e) {
//                System.out.println("");
//            }

事件处理大同小异,我们就不一一介绍了

6.内部类

1.内部类的组成:

  • 成员内部类
  • 静态内部类
  • 局部内部类
  • 匿名内部类

 2.内部类的意义:

  • 封装性
  • 实现多继承

 GUI的搭建就和搭积木一样,只有把底层搭好,一步一步的向顶层进行搭建!!!

  • 10
    点赞
  • 106
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
整理了Java GUI编程基础知识! public class AllFrame { /** * 这里的代码涉及到 GUI 编程基本面板、基本组件、事件(ActionListener、ChangeListener、MouseListener) */ public AllFrame() { // new 一个主窗体 也可以这样写 new MainFrame(); MainFrame mf = new MainFrame(); } public static void main(String[] args) { new AllFrame(); } // 主窗体 继承 窗体基本格式 类 Jframe 以下弹出窗口均继承 Jframe class MainFrame extends Jframe implements ActionListener { JMenuBar menubar = new JMenuBar();;// 菜单条 JMenu jmenu[] = new JMenu[5];// panelMenu,usedMenu1,usedMenu2,layoutMenu,helpMenu; // 菜单项 JButton closebtn;// 关闭窗体 // 具体的选项 JMenuItem panelitem[] = new JMenuItem[4]; JMenuItem useditem1[] = new JMenuItem[6]; JMenuItem useditem2[] = new JMenuItem[6]; JMenuItem layoutitem[] = new JMenuItem[3]; JMenuItem helpitem = new JMenuItem("关于"); // 菜单中名称 String menu[] = { "面板使用", "常用组件一", "常用组件二", "布局设置", "帮助" }; String pane[] = { "普通面板", "滚动面板", "分割面板", "选项面板" }; String uesd1[] = { "标签", "按钮", "文本框", "文本域", "单选按钮" ,"微调"}; String uesd2[] = { "滑块","复选框", "下拉菜单", "列表", "表格", "树状" }; String layout[] = { "流式布局", "边界布局", "网格布局" }; // Jpanelitem,Jscrollpaneitem,Splitpaneitem,JTabbedpanelitem, // Jlabelitem,Jbuttonitem,JTextfielditem,JTextareaitem,JRadiobuttonitem, // JCheckboxitem,JCombomoxitem,Jlistitem,Jtableitem,Jtreeitem, // Flowlayoutitem,Borderlayoutitem,Girdlayoutitem, // Helpitem}; public MainFrame() { this.setTitle("JAVA图型界面学习(GUI)"); // 加载菜单条到窗体中 this.setJMenuBar(menubar); // 重新设置大小 this.setSize(380, 290); // 简单的居中方法 在窗体基本格式类 Jframe 中有详细的居中方法 this.setLocationRelativeTo(null); // 设置关闭窗口 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 调用方法 menu(); // 设置容器 Container con = this.getContentPane(); // 定义一个 标签 “JAVA图型界面学习” JLabel jl = new JLabel("JAVA图型界面学习"); // 组件 设置字体大小, 其他组件用法相同 jl.setFont(new Font("隶书", Font.BOLD, 24)); // 具体定位 组件名.setBounds(x, y, width, height) jl.setBounds(30, 30, 280, 50); // 把标签加到 con 容器中 con.add(jl); /

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃橘子的Crow

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值