疯踏java知识点-进阶精讲篇2

简介: 疯踏java知识点-进阶精讲篇2

GUI Graphical User Interface 图形用户接口

    java.awt包:——抽象窗口工具包
    javax.swing包:
     组件:是具有图形表示的对象,该图形表示可以显示在屏幕上并且可以和
        用户交互

JFrame 一个顶层窗口

构造方法    JFrame():构造一个最初不可见的窗体
成员方法
    void setVisible(boolean b):显示或隐藏窗口
    void setSize(int width,int height):调整大小(像素)
    void setTitle(String title) 设置窗口标题
    void setLocationRelativeTo(Component c)设置位置 值为null 则窗体
      位于屏幕中央
    void setDefaultCloseOperation(int operation)设置窗口关闭默认操
    作 3表示窗口关闭时退出应用程序
    void setAlwaysOnTop(boolean alwaysOnTop) 设置此窗口位于其他窗口
    之上
import javax.swing.*;
public class crj {
    public static void main(String[] args) {
        //创建窗口对象
        JFrame jf=new JFrame();
        //设置标题
        jf.setTitle("百度一下就知道了");
        //设置窗口大小
        jf.setSize(400,400);
        //设置窗口关闭默认操作——3表示退出程序
        jf.setDefaultCloseOperation(3);
        //移动到屏幕中央
        jf.setLocationRelativeTo(null);
        //窗体始终在最上面
        jf.setAlwaysOnTop(true);
        //窗口可见
        jf.setVisible(true);
    }
}

JButton 按钮的实现

构造方法
    JButton(String text):创建一个带文本的按钮
成员方法
    void setSize(int width,int height) 设置大小
    void setLocation(int x,int y) 设置位置(x,y坐标)
import javax.swing.*;
public class crj {
    public static void main(String[] args) {
        JFrame jf=new JFrame();
        jf.setTitle("窗体中创建按钮");
        jf.setSize(400,400);
        jf.setDefaultCloseOperation(3);
        jf.setLocationRelativeTo(null);
        jf.setAlwaysOnTop(true);
        //取消窗体默认布局
        jf.setLayout(null);
        //创建按钮
        JButton btn=new JButton("按钮");
        btn.setBounds(100,100,100,20);
        JButton btn2=new JButton("按钮2");
        btn2.setBounds(100,120,100,20);
        jf.add(btn);
        jf.add(btn2);
        jf.setVisible(true);
    }
}



JLabel 短文本字符串或图像的显示区域

构造方法
    JLabel(String text):使用指定的文本创建JLabel实例
    JLabel(lcon image):使用指定的图像创建JLabel实例
        Imagelcon(String filename):从指定的文件创建Imagelcon
        文件路径:绝对路径和相对路径
成员方法
    void setBounds
import javax.swing.*;
public class crj {
 public static void main(String[] args) {
     JFrame jf=new JFrame();
     //设置标题
     jf.setTitle("显示文本和图像");
     jf.setSize(400,400);
     jf.setDefaultCloseOperation(3);
     jf.setLocationRelativeTo(null);
     jf.setAlwaysOnTop(true);
     jf.setLayout(null);
     //显示文本
     JLabel jLabel=new JLabel("好好学习");
     jLabel.setBounds(0,0,100,20);
     //显示图像
     //方法a
     //创建ImageIcon
     ImageIcon icon1 = new ImageIcon("文件位置");
     //创建JLabel管理容器
     JLabel jLabel1 = new JLabel(icon1);
     //设定图片位置
     jLabel1.setBounds(50,50,57,57);
     jf.add(jLabel);
     jf.add(jLabel1);
     jf.setVisible(true);
 }
}   


GUI案例1 用户登录

import javax.swing.*;
public class crj {
    public static void main(String[] args) {
        JFrame jf=new JFrame();
        jf.setTitle("用户登录");
        jf.setSize(400,300);
        jf.setDefaultCloseOperation(3);
        jf.setLocationRelativeTo(null);
        jf.setAlwaysOnTop(true);
        jf.setLayout(null);
        //显示用户名文本
        JLabel usernameLable=new JLabel("用户名");
        usernameLable.setBounds(50,50,50,20);
        jf.add(usernameLable);
        //输入框
        JTextField usernameFiled=new JTextField();
        usernameFiled.setBounds(150,50,180,20);
        jf.add(usernameFiled);
        //显示密码文本
        JLabel passworldLable=new JLabel("密码");
        passworldLable.setBounds(50,100,50,20);
        jf.add(passworldLable);
            //输入框
//        JTextField passworldFiled=new JTextField();
//        passworldFiled.setBounds(150,100,180,20);
//        jf.add(passworldFiled);
            //密码输入框改进
        JPasswordField passworldFiled=new JPasswordField();
        passworldFiled.setBounds(150,100,180,20);
        jf.add(passworldFiled);
        //登录按钮
        JButton loginButton=new JButton("登录");
        loginButton.setBounds(50,200,280,20);
        jf.add(loginButton);
        jf.setVisible(true);
    }
}

GUI案例2 聊天室

import javax.swing.*;
public class crj {
    public static void main(String[] args) {
        JFrame jf=new JFrame();
        jf.setTitle("聊天室");
        jf.setSize(400,300);
        jf.setDefaultCloseOperation(3);
        jf.setLocationRelativeTo(null);
        jf.setAlwaysOnTop(true);
        jf.setLayout(null);
        //聊天信息文本框
        JTextArea massageArea=new JTextArea();
        massageArea.setBounds(10,10,360,200);
        jf.add(massageArea);
        //输入信息文本框
        JTextField massageField=new JTextField();
        massageField.setBounds(10,230,180,20);
        jf.add(massageField);
        //发送按钮
        JButton sendButton=new JButton("发送");
        sendButton.setBounds(200,230,70,20);
        jf.add(sendButton);
        //清空聊天按钮
        JButton clearButton=new JButton("清空聊天");
        clearButton.setBounds(280,230,100,20);
        jf.add(clearButton);
        jf.setVisible(true);
    }
}


GUI案例3 猜数字

import javax.swing.*;
public class crj {
    public static void main(String[] args) {
        JFrame jf=new JFrame();
        jf.setTitle("猜数字");
        jf.setSize(400,300);
        jf.setDefaultCloseOperation(3);
        jf.setLocationRelativeTo(null);
        jf.setAlwaysOnTop(true);
        jf.setLayout(null);
        //提示信息
        JLabel messageLable=new JLabel("系统产生了一个1~100之间的数字,请猜一猜");
        messageLable.setBounds(70,50,350,20);
        jf.add(messageLable);
        //猜数字文本框
        JTextField numberFiled=new JTextField();
        numberFiled.setBounds(120,100,150,20);
        jf.add(numberFiled);
        //猜数字按钮
        JButton guessButton=new JButton("我猜");
        guessButton.setBounds(150,150,100,20);
        jf.add(guessButton);
        jf.setVisible(true);
    }
}

GUI案例4 手机日期和时间显示

import javax.swing.*;
public class crj {
    public static void main(String[] args) {
        JFrame jf=new JFrame();
        jf.setTitle("手机日期和时间显示");
        jf.setSize(400,300);
        jf.setDefaultCloseOperation(3);
        jf.setLocationRelativeTo(null);
        jf.setAlwaysOnTop(true);
        jf.setLayout(null);
        //提示日期
        JLabel dataLable=new JLabel("日期");
        dataLable.setBounds(50,50,100,20);
        jf.add(dataLable);
        //按格式显示日期
        JLabel showDataLable=new JLabel("xxxx年xx月xx日");
        showDataLable.setBounds(50,80,200,20);
        jf.add(showDataLable);
        //提示时间
        JLabel timeLAble=new JLabel("时间");
        timeLAble.setBounds(50,150,100,20);
        jf.add(timeLAble);
        //按格式显示时间
        JLabel showTimeLable=new JLabel("xx:xx");
        showTimeLable.setBounds(50,180,200,20);
        jf.add(showTimeLable);
        jf.setVisible(true);
    }
}

GUI案例5 考勤查询

import com.itheima_05.DateChooser;
import javax.swing.*;
public class crj {
    public static void main(String[] args) {
        JFrame jf=new JFrame();
        jf.setTitle("考勤查询");
        jf.setSize(400,300);
        jf.setDefaultCloseOperation(3);
        jf.setLocationRelativeTo(null);
        jf.setAlwaysOnTop(true);
        jf.setLayout(null);
        //显示考勤日期
        JLabel dataLable=new JLabel("考勤日期");
        dataLable.setBounds(50,20,100,20);
        jf.add(dataLable);
        //开始时间
        JLabel startDateLable =new JLabel("开始时间");
        startDateLable.setBounds(50,70,100,20);
        jf.add(startDateLable);
        DateChooser dateChooser1 = DateChooser.getInstance("yyyy/MM/dd");
        DateChooser dateChooser2 = DateChooser.getInstance("yyyy/MM/dd");
        //开始时间输入框
        JTextField startDateField=new JTextField();
        startDateField.setBounds(50,100,100,20);
        dateChooser1.register(startDateField);
        jf.add(startDateField);
        //结束时间
        JLabel endDateLable =new JLabel("结束时间");
        endDateLable.setBounds(250,70,100,20);
        jf.add(endDateLable);
        //结束时间输入框
        JTextField endDateField=new JTextField();
        endDateField.setBounds(250,100,100,20);
        dateChooser2.register(endDateField);
        jf.add(endDateField);
        //确定按钮
        JButton confirmButton=new JButton("确定");
        confirmButton.setBounds(250,180,60,20);
        jf.add(confirmButton);
        jf.setVisible(true);
    }
}

通过丰富的案例和详细的知识点讲解,丰富的案例和详细的知识点讲解,希望能对大家带来点帮助。

相关文章
|
4月前
|
安全 Java 编译器
揭秘JAVA深渊:那些让你头大的最晦涩知识点,从泛型迷思到并发陷阱,你敢挑战吗?
【8月更文挑战第22天】Java中的难点常隐藏在其高级特性中,如泛型与类型擦除、并发编程中的内存可见性及指令重排,以及反射与动态代理等。这些特性虽强大却也晦涩,要求开发者深入理解JVM运作机制及计算机底层细节。例如,泛型在编译时检查类型以增强安全性,但在运行时因类型擦除而丢失类型信息,可能导致类型安全问题。并发编程中,内存可见性和指令重排对同步机制提出更高要求,不当处理会导致数据不一致。反射与动态代理虽提供运行时行为定制能力,但也增加了复杂度和性能开销。掌握这些知识需深厚的技术底蕴和实践经验。
96 2
|
1月前
|
存储 设计模式 SQL
[Java]知识点
本文涵盖Java编程中的多个知识点,包括静态与动态代理、基本数据类型转换、设计模式、异常处理、类加载、序列化、ORM框架、IPv4地址分类、编译与解释等。文章详细介绍了每个知识点的原理和使用方法,并提供了相关示例和注意事项。
44 16
[Java]知识点
|
1月前
|
网络协议 Java 物联网
Java网络编程知识点
Java网络编程知识点
44 13
|
2月前
|
安全 Java 编译器
Java基础-知识点(二)
Java基础-知识点(二)
13 0
|
2月前
|
存储 缓存 安全
Java基础-知识点(一)
Java基础-知识点(一)
21 0
|
5月前
|
Java Perl
Java进阶之正则表达式
【7月更文挑战第17天】正则表达式(RegEx)是一种模式匹配工具,用于在字符串中执行搜索、替换等操作。它由普通字符和特殊元字符组成,后者定义匹配规则。
38 4
|
5月前
|
设计模式 Java
Java进阶之代理
Java进阶之代理
29 4
|
5月前
|
设计模式 Java
Java进阶之代理
Java进阶之代理
31 3
|
5月前
|
设计模式 Java
Java进阶之代理
【7月更文挑战第16天】Java动态代理通过`java.lang.reflect.Proxy`和`InvocationHandler`实现,无需编译期定义代理类。与静态代理相比,它更灵活,代码更简洁,适用于方法数量变化或未知接口代理。
32 2
|
5月前
|
Java 编译器 API
Java进阶之标准注解
【7月更文挑战第15天】Java标准注解包括标记注解(如@Deprecated)、@Override(检查方法重写)、@SuppressWarnings(抑制警告)。多值注解如@RequestMapping在Spring中用于HTTP请求映射。元注解如@Retention控制注解保留策略,@Target指定应用位置。Java8引入类型注解(@FunctionalInterface、@SafeVarargs)和重复注解(@Repeatable)。自定义注解可通过反射读取,如示例中的MyMarkerAnnotation等。
28 2