【Java_GUI编程】--基本操作你要知道(二)

简介: 【Java_GUI编程】--基本操作你要知道(二)

输入框事件监听

package www.qyl.lesson01;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TestActionEvent {
    public static void main(String[] args) {
        JFrame jFrame = new JFrame();
        jFrame.setBounds(10,10,300,300);
        jFrame.setVisible(true);
        JTextField jTextField = new JTextField("test:");
        jFrame.getContentPane().add(jTextField);
        jTextField.addActionListener(new MyActionEvent());
    }
}
class MyActionEvent implements ActionListener{
    @Override
    public void actionPerformed(ActionEvent e) {
        JTextField jTextField = (JTextField)e.getSource(); //获得一些资源、返回一个对象
        System.out.println(jTextField.getText());   //获得输入框中的内容
        jTextField.setText("");     //设置输入框为 null
    }
}

文本框输入文字回车后提交到后台

键盘监听

package www.qyl.lesson01;
import javax.swing.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class TestKeyListener {
    public static void main(String[] args) {
        new KeyFrame();
    }
}
class KeyFrame extends JFrame{
    public KeyFrame(){
        setBounds(10,10,300,300);
        setVisible(true);
        this.addKeyListener(new KeyListener() {
            @Override
            public void keyTyped(KeyEvent e) {
            }
            @Override
            public void keyPressed(KeyEvent e) {
                int keycode = e.getKeyCode();  //获得键盘按下的哪一个键
                System.out.println(keycode);  //打印目前按下的键(会输出一个静态属性值)
                if (keycode == KeyEvent.VK_SPACE){   //键盘上每个健对应一个静态属性值:VK_XX
                    System.out.println("你按下了空格");
                }
            }
            @Override
            public void keyReleased(KeyEvent e) {
            }
        });
    }
}

5、JDialog弹窗

package www.qyl.lesson01;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TestDialog {
    public static void main(String[] args) {
        JFrame jFrame = new JFrame();
        jFrame.setVisible(true);
        jFrame.setBounds(10,10,300,300);
        JButton button = new JButton("button1");
        jFrame.getContentPane().add(button);
        button.addActionListener(new MyAction1());
    }
}
class MyAction1 implements ActionListener{
    @Override
    public void actionPerformed(ActionEvent e) {
        new MyDialogDemo();
    }
}
class MyDialogDemo {
    public MyDialogDemo(){
        JDialog jDialog = new JDialog();
        jDialog.setVisible(true);
        jDialog.setBounds(100,100,300,300);
    }
}

点击按钮弹出JDialog窗口

6、Icon、ImageIcon标签

Icon

package www.qyl.lesson02;
import javax.swing.*;
import java.awt.*;
public class IconDemo extends JFrame implements Icon {
    private int width,height;
    public IconDemo(){
    }
    public IconDemo(int width,int height){
        this.width = width;
        this.height = height;
    }
    public void init(){
        IconDemo iconDemo = new IconDemo(15,15);
        JLabel label = new JLabel("icontest",iconDemo,SwingConstants.CENTER);
        Container container = getContentPane();
        container.add(label);
        this.setBounds(50,50,100,100);
        this.setVisible(true);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        new IconDemo().init();
    }
    @Override
    public void paintIcon(Component c, Graphics g, int x, int y) {
        g.fillOval(x,y,width,height);   //g:是画笔,g.fillOval画出一个图形
    }
    @Override
    public int getIconWidth() {
        return this.width;
    }
    @Override
    public int getIconHeight() {
        return this.height;
    }
}

ImageIcon

图片也可以放在按钮上,称为图片按钮

package www.qyl.lesson02;
import com.sun.jndi.toolkit.url.UrlUtil;
import javax.swing.*;
import java.awt.*;
import java.net.URL;
public class ImageIconDemo extends JFrame {
    public ImageIconDemo(){
        JLabel label = new JLabel("ImageIcon");
        URL url = ImageIconDemo.class.getResource("hhy.png");  //获取本类路径下的图片路径,获取图片路径
        ImageIcon imageIcon = new ImageIcon(url);
        label.setIcon(imageIcon);
        Container container = getContentPane();
        container.add(label);
        setVisible(true);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setBounds(20,20,300,300);
    }
    public static void main(String[] args) {
        new ImageIconDemo();
    }
}

7、按钮

单选按钮

package www.qyl.lesson02;
import javax.swing.*;
public class TestradioBttton {
    public static void main(String[] args) {
        JFrame jf = new JFrame();
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        jf.setBounds(10,10,300,300);
        jf.setVisible(true);
        JPanel jPanel = new JPanel();
jRadioButtonJiZhuPass.isSelected()
        JRadioButton jradio1 = new JRadioButton("男");
        JRadioButton jradio2 = new JRadioButton("女");
        //单选只能选择一个所以需要分组,一个组中只能选择一个
        ButtonGroup group = new ButtonGroup();
        group.add(jradio1);
        group.add(jradio2);
        //判断是否选中单选框
         System.out.println(jradio1.isSelected());  //返回Boolean类型
        jPanel.add(jradio1);
        jPanel.add(jradio2);
        jf.add(jPanel);
    }
}

目录
相关文章
|
2月前
|
Java API 微服务
为什么虚拟线程将改变Java并发编程?
为什么虚拟线程将改变Java并发编程?
237 83
|
22天前
|
安全 Java 数据库连接
2025 年最新 Java 学习路线图含实操指南助你高效入门 Java 编程掌握核心技能
2025年最新Java学习路线图,涵盖基础环境搭建、核心特性(如密封类、虚拟线程)、模块化开发、响应式编程、主流框架(Spring Boot 3、Spring Security 6)、数据库操作(JPA + Hibernate 6)及微服务实战,助你掌握企业级开发技能。
174 3
|
4月前
|
Java 程序员 应用服务中间件
【高薪程序员必看】万字长文拆解Java并发编程!(2 2-2)
📌 核心痛点暴击:1️⃣ 面了8家都被问synchronized锁升级?一张图看懂偏向锁→重量级锁全过程!2️⃣ 线程池参数不会配?高并发场景下这些参数调优救了项目组命!3️⃣ volatile双重检测单例模式到底安不安全?99%人踩过的内存可见性大坑!💡 独家亮点抢先看:✅ 图解JVM内存模型(JMM)三大特性,看完再也不怕指令重排序✅ 手撕ReentrantLock源码,AQS队列同步器实现原理大揭秘✅ 全网最细线程状态转换图(附6种状态转换触发条件表)
89 0
|
1月前
|
Java
Java编程:理解while循环的使用
总结而言, 使用 while 迴圈可以有效解决需要多次重复操作直至特定條件被触发才停止執行任务场景下问题; 它简单、灵活、易于实现各种逻辑控制需求但同时也要注意防止因邏各错误导致無限迁璇発生及及時處理可能発生异常以确保程序稳定运作。
154 0
|
1月前
|
安全 Cloud Native Java
Java:历久弥新的企业级编程基石
Java:历久弥新的企业级编程基石
|
1月前
|
移动开发 Cloud Native Java
Java:历久弥新的企业级编程基石
Java:历久弥新的企业级编程基石
|
2月前
|
设计模式 Java 数据库连接
Java编程的知识体系 | Java编程精要
Java是一种广泛使用的通用编程语言,具备面向对象、跨平台、安全简单等优势,适用于桌面、企业、Web、移动及大数据等多个领域。它功能强大且易于学习,是程序设计入门和面向对象思想学习的优选语言。本书系统讲解Java编程知识,涵盖技术核心与应用拓展两大模块,内容包括基础语法、面向对象设计、GUI、数据库、多线程、网络编程及Web开发等,帮助读者全面掌握Java开发技能。
70 0
|
2月前
|
安全 Java
Java编程探究:深入解析final关键字
1. **使用限制**: 对于 `final` 方法和类,可以限制其他开发人员对代码的使用,确保其按设计的方式工作而不会被子类意外改变。
84 0
|
2月前
|
存储 缓存 安全
深入讲解 Java 并发编程核心原理与应用案例
本教程全面讲解Java并发编程,涵盖并发基础、线程安全、同步机制、并发工具类、线程池及实际应用案例,助你掌握多线程开发核心技术,提升程序性能与响应能力。
88 0

热门文章

最新文章