首页 > 编程语言 > java基础语法API之GUI图形化界面2

java基础语法API之GUI图形化界面2

时间:2023-12-27 21:32:24浏览次数:55  
标签:setBounds java JLabel GUI 20 add new jf 图形化

一:概述

在1中,已经对GUI图形化的基础知识做了个概述,2中主要以例子为载体说明。并且介绍时间监听机制

二:具体说明

<1>猜数字


           // 创建窗体对象
           JFrame jf = new JFrame();
           jf.setTitle("猜数字");
           jf.setSize(400 , 300);
           jf.setDefaultCloseOperation(3);
           jf.setLocationRelativeTo(null);
           jf.setAlwaysOnTop(true);
           jf.setLayout(null);

           // 创建一个JLabel对象用于显示文字
           JLabel jLabel = new JLabel("系统产生了一个1~100之间的数,你猜一猜");
           jLabel.setBounds(70,50,350,20);
           jf.add(jLabel);

           // 创建一个JTextField用于用户输入猜的数
           JTextField inputField = new JTextField();
           inputField.setBounds(120,100,150,20);
           jf.add(inputField);

           // 创建一个JButton按钮
           JButton youGuess = new JButton("我猜");
           youGuess.setBounds(150,150,100,20);
           jf.add(youGuess);


           // 设置窗体可见
           jf.setVisible(true);

       }

                                       java基础语法API之GUI图形化界面2_文本域

<2>用户注册页面

// 创建窗体
        JFrame jf = new JFrame();
        // 设置标题
        jf.setTitle("用户注册");
        // 设置窗体的大小
        jf.setSize(400, 450);
        // 设置默认的关闭方式
        jf.setDefaultCloseOperation(3);
        // 设置窗体在中间位置显示
        jf.setLocationRelativeTo(null);
        // 设置窗体在最顶部显示
        jf.setAlwaysOnTop(true);
        // 取消默认分布
        jf.setLayout(null);


        // 创建JLabel对象,设置邮箱文本
        JLabel emailLabel = new JLabel("邮箱");
        emailLabel.setBounds(50,50,50,20);
        jf.add(emailLabel);

        // 创建邮箱输入框
        JTextField emailField = new JTextField();
        emailField.setBounds(150,50,180,20);
        jf.add(emailField);


        // 创建JLabel对象,设置用户名文本
        JLabel jLabel1 = new JLabel("用户名");
        jLabel1.setBounds(50, 100, 50, 20);
        jf.add(jLabel1);

        // 用户名输入框
        JTextField usernameField = new JTextField();
        usernameField.setBounds(150, 100, 180, 20);
        jf.add(usernameField);


        // 创建JLabel对象,设置密码文本
        JLabel jLabel2 = new JLabel("密码");
        jLabel2.setBounds(50, 150, 50, 20);
        jf.add(jLabel2);

        // 创建密码输入框
        JPasswordField passwordField = new JPasswordField();
        passwordField.setBounds(150, 150, 180, 20);
        jf.add(passwordField);


        // 创建JLabel对象,设置确认密码文本
        JLabel jLabel3 = new JLabel("确认密码");
        jLabel3.setBounds(50, 200, 50, 20);
        jf.add(jLabel3);


        // 创建确认密码框
        JPasswordField enterPwdField = new JPasswordField();
        enterPwdField.setBounds(150,200,180,20);
        jf.add(enterPwdField);


        // 创建验证码文本
        JLabel checkCodeLabel = new JLabel("验证码");
        checkCodeLabel.setBounds(50,250,50,20);
        jf.add(checkCodeLabel);

        // 创建验证码输入框
        JTextField checkCodeField = new JTextField();
        checkCodeField.setBounds(150,250,180,20);
        jf.add(checkCodeField);

        // 创建1个JButton对象
        JButton btn1 = new JButton("注册");
        btn1.setBounds(50, 300, 280, 20);
        jf.add(btn1);


        // 设置窗体显示
        jf.setVisible(true);
    }

                                       java基础语法API之GUI图形化界面2_文本域_02

<3>事件监听事件的介绍

事件监听机制的组成:

  • 事件源:事件发生的地方。可以是按钮,窗体,图片等
  • 事件:发生了什么事情。例如:鼠标点击事件,键盘按下事件等
  • 事件绑定:把事件绑定到事件源上,当发生了某个事件,则触发对应的处理逻辑
  • 事件源对象. addXXXListener(事件);

<4>聊天室案例

 // 创建JFrame窗体对象
                   JFrame jFrame = new JFrame();
                   // 给窗体设置属性
                   jFrame.setTitle("聊天室");
                   jFrame.setSize(400,300);
                   jFrame.setDefaultCloseOperation(3);
                   jFrame.setAlwaysOnTop(true);
                   jFrame.setLocationRelativeTo(null);
                   jFrame.setLayout(null);


                   // 创建文本域,用于显示用户输入的内容
                   JTextArea chatArea = new JTextArea();
                   chatArea.setBounds(10,10,360,200);
                   jFrame.add(chatArea);

                   // 创建输入框,用于用户输入信息
                   JTextField inputField  = new JTextField();
                   inputField.setBounds(10,230,180,20);
                   jFrame.add(inputField);


                   // 创建发送按钮
                   JButton sendBtn = new JButton("发送");
                   sendBtn.setBounds(200,230,70,20);
                   jFrame.add(sendBtn);

                   // 给发送按钮按钮绑定事件监听机制,使用户发送的信息,在文本域中可以看见
                   sendBtn.addActionListener(new ActionListener() {
                       @Override
                       public void actionPerformed(ActionEvent e) {

                               // 获取用户输入的信息,调用trim方法用于清除输入文本的前后空格
                               String input = inputField.getText().trim();
                               // 将用户输入的信息添加到文本域中。利用追加的方式,不用直接设置
                               // 原因是直接设置,第二次输入就会覆盖第一次输入的内容
                               chatArea.append(input + "\n");
                               // 当用户点击发送按钮后,输入文本框里的内容就需要清空
                               inputField.setText("");
                       }
                   });

                   // 创建清空聊天的按钮
                   JButton clearBtn = new JButton("清空聊天");
                   clearBtn.setBounds(280,230,100,20);
                   jFrame.add(clearBtn);


                   // 给清空按钮绑定监听事件
                   clearBtn.addActionListener(new ActionListener() {

                       @Override
                       public void actionPerformed(ActionEvent e) {
                       // 当用户点击这个清空按钮后,将文本域中的内容设置为空即好
                           chatArea.setText("");
                       }

                   });



                   // 设置窗体可见
                    jFrame.setVisible(true);

               }


                                       java基础语法API之GUI图形化界面2_用户名_03





标签:setBounds,java,JLabel,GUI,20,add,new,jf,图形化
From: https://blog.51cto.com/u_15912723/9004176

相关文章

  • 无涯教程-Java泛型 - 参数类型
    泛型类可以具有参数化类型,其中类型参数可以替换为参数化类型。以下示例将展示上述概念。packagecom.learnfk;importjava.util.ArrayList;importjava.util.List;publicclassGenericsTester{publicstaticvoidmain(String[]args){Box<Integer,List<St......
  • Java的安装
    Ubuntu下的Java环境:1.JDK/JRE的安装2.java的环境变量3.运行普遍Java程序4.Java程序的运行脚本 1.先安装Java的软件包:JRE:openjdk-8-jre-headlessJDK: openjdk-8-jdk-headless安装命令:sudoaptinstall openjdk-8-jdk-he......
  • 无涯教程-Java泛型 - 多个类型
    泛型类可以具有多个类型参数。以下示例将展示上述概念。packagecom.learnfk;publicclassGenericsTester{publicstaticvoidmain(String[]args){Box<Integer,String>box=newBox<Integer,String>();box.add(Integer.valueOf(10),"HelloWorld")......
  • Sqoop连接数据库报错:Caused by: javax.net.ssl.SSLHandshakeException: No appropriat
    控制台报错:[root@bigdata1sqoop-1.4.2.bin__hadoop-2.0.0-alpha]#./bin/sqooplist-databases--connectjdbc:mysql://192.168.45.10:3306--usernameroot--password1234562023-12-2802:58:50,807WARNtool.BaseSqoopTool:Settingyourpasswordonthecommand-linei......
  • [JAVA基础]后端原理
    后端原理【【网站架构】5分钟了解后端工作原理。为什么Tomcat长时间运行会崩溃?高并发线程池怎么设置?】https://www.bilibili.com/video/BV1PB4y11795/?share_source=copy_web&vd_source=55965a967914567042ced99f130f6538后段部分运行原理Tomcat+war包jar包后端程......
  • 无涯教程-Java泛型 - 泛型方法
    您可以编写一个可以用于不同类型参数调用的通用方法,根据传递给泛型方法的参数类型来找到对应方法进行处理。以下示例说明了如何使用单个Generic方法打印不同类型的数组-publicclassGenericMethodTest{//泛型方法printArraypublicstatic<E>voidprintArray(E[......
  • HTML学习第六天:初步探索JavaScript与交互
    在今天的HTML学习中,我初步探索了JavaScript和网页交互的世界。早上,我首先了解了JavaScript的基本概念和语法。JavaScript是一种用于增强网页交互性的脚本语言,它可以直接在浏览器中运行。我学习了如何使用变量、函数和基本的控制结构来编写JavaScript代码。午后,我开始将JavaScript与......
  • 无涯教程-Java泛型 - 类型推断
    类型推断表示Java编译器查看方法调用以及其相应的声明来检查和确定类型的参数,如果可用,则返回分配的类型。如果未使用类型推断,则编译器会生成未经检查的转换警告。Typeinference-语法Box<Integer>integerBox=newBox<>();Box  -Box是一个通用类。<>  -运算符表......
  • 无涯教程-Java泛型 - 命名约定
    按照惯例,类型参数名称被命名为单个大写字母,以便可以使用普通的类或接口名称区分类型参数。以下是常用类型参数名称的列表-E元素  -主要由JavaCollections框架使用。K键    -主要用于表示Map键的参数类型。V值    -主要用于表示Map的值的参数......
  • java流程控制
    一.用户交互Scanner对象可以用Scanner类来获取用户的输入Scanner对象的基本语法Sacnnerscanner=newScanner(System.in)Scanner类的常用方法hasNext();判断用户是否有输入next();读取到有效字符后......