窗体,组件,事件

2023-11-05

窗体对象JFrame

package frame;

import javax.swing.*;

public class JFrameTest {
    public static void main(String[] args) {
        //创建窗体对象
        JFrame jFrame = new JFrame();
        //设置宽度和高度
        jFrame.setSize(500,800);
        //设置关闭模式
        jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        //设置窗体标题
        jFrame.setTitle("来自冰逸的第一个窗体!");
        //设置窗体可见
        jFrame.setVisible(true);
    }
}

组件

按钮组件

JButton()创建一个没有设置文本或者图标按钮

JButton(String text) 创建一个带文本的按钮

package frame;
import javax.swing.*;
public class JFrameTest {
    public static void main(String[] args) {
        JFrame jFrame = new JFrame();
        jFrame.setSize(500, 500);
        jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        //取消窗体默认布局
        jFrame.setLayout(null);
        jFrame.setTitle("冰逸的按钮");
        //创建按钮对象
        JButton btn = new JButton("点我啊~~");
        btn.setBounds(250,250,100,100);
        //将按钮添加到窗体的面板对象中
        jFrame.getContentPane().add(btn);
        jFrame.setVisible(true);
    }
}

焦点:程序的注意力集中在某一个组件上

注意:按钮组件比较特殊,在创建好后,程序的焦点,默认就停留在按钮组件上面,但是按钮组件,其实不需要占用程序的焦点,可以通过setFocusable(false);取消焦点

JLabel组件

用于展示文本和图片

JLabel(String text)使用指定的文本创建一个JLabel对象

JLabel(Icon image)创建一个具有指定图像的JLabel对象

package frame;

import javax.swing.*;

public class JLabelTest {
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setSize(1200, 1200);
        frame.setLayout(null);
        JLabel jl1 = new JLabel("照片");
        jl1.setBounds(100, 100, 300, 300);
        frame.getContentPane().add(jl1);
        JLabel imgLabel_2021071110315659png = new JLabel(new ImageIcon("C:\\U2021071110315659.png"));
        imgLabel_2021071110315659png.setBounds(0, 0, 1000, 1000);
        frame.getContentPane().add(imgLabel_2021071110315659png);
        frame.setVisible(true);

    }
}

 注意:如果多个组件摆放在同一位置,后添加的组件,会被压在底部

事件

事件是可以被组件识别的操作

当你对组件干了某件操作之后,就会执行对应的代码

1.事件源:按钮、图片、窗体

2.事件操作:鼠标单击,键盘按下

3.绑定监听:当事件源上发生了事件操作,触发执行某段代码

ActionListener:动作监听器(鼠标点击,空格按下)

package frame;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class JLabelTest {
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setSize(1200, 1200);
        frame.setLayout(null);
        JButton jl1 = new JButton("按钮");
        jl1.setBounds(100, 100, 300, 300);
        frame.getContentPane().add(jl1);
jl1.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("我被点了");
    }
});


        frame.setVisible(true);

    }
}

KeyListener:键盘监听器

package frame;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

public class JLabelTest {
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setSize(1200, 1200);
        frame.setLayout(null);
        JButton jl1 = new JButton("按钮");
        jl1.setBounds(100, 100, 300, 300);
        frame.getContentPane().add(jl1);
jl1.addKeyListener(new KeyListener() {
    @Override
    public void keyTyped(KeyEvent e) {
        System.out.println("业务代码");
    }

    @Override
    public void keyPressed(KeyEvent e) {
        System.out.println("业务代码");
    }

    @Override
    public void keyReleased(KeyEvent e) {
        System.out.println("业务代码");
    }
});


        frame.setVisible(true);

    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

窗体,组件,事件 的相关文章

随机推荐

  • 华为OD机试 - 矩阵最大值(Python)

    题目描述 给定一个仅包含0和1的N N二维矩阵 请计算二维矩阵的最大值 计算规则如下 1 每行元素按下标顺序组成一个二进制数 下标越大越排在低位 二进制数的值就是该行的值 矩阵各行值之和为矩阵的值 2 允许通过向左或向右整体循环移动每行元素
  • python selenium从新浪财经网抓取一家公司的高管任职信息写入excel表格

    网址 http vip stock finance sina com cn corp go php vCI CorpManager stockid 600900 phtml 在页面按f12打开开发者工具 在table标签上右键复制xpath
  • SpringMvc学习-4-Spring MVC 拦截器

    SPring MVC JSON数据交互 Spring提供了一个HttpMessageConverter
  • excel多元线性拟合_急,如何用excel拟合多元函数

    数据如下 公式lny lnA aT blnK clnL D 其中AD是固定值 y是生产总值 T是时间 K是固定资产投资 L是就业 求用excel拟合方程求出abc 多谢了 急等各位大侠 生产总值 固定资产投资 时间 就业 522 28 11
  • 胡言乱语

    1 2013 4 10 又梦见你们苍苍的容颜 心里满满的自责 我早该长大了 不应该心存侥幸的在抗拒 让你们承受的太多了 愧疚难当
  • 最新CTR预测服务的GPU优化实践

    CTR模型在互联网的搜索 推荐 广告等场景有着广泛的应用 近年来 随着深度神经网络的引入 CTR模型的推理对硬件算力的要求逐渐增加 本文介绍了美团在CTR模型优化的实践 通过分析模型结构特点 结合GPU硬件架构 我们设计了一系列流程对模型进
  • 目标检测标签文件txt转成xml

    最近在用ppyolo训练好的模型对新采集的数据进行标记 再人工微调 减少从头打标签的时间 但是推理保存的结果都是txt格式的 想要在labelimg中可视化 那就需要将txt转换成xml 以下代码即可完成这一功能 coding UTF 8
  • Web_Components 系列(九)—— Shadow Host 的 CSS 选择器

    前言 在上一节我们了解了如何给自定义组件设置样式 当时是将自定义标签的样式设置在主 DOM 中的
  • docker从安装到入门(centos7连不上网)

    我们安装好centos7之后 只用网络链接的NAT模式 主机有网你就有网 傻瓜式链接 但是发现ping不通百度 通过ifconfig a发现ens33没有ip 虽然和这个没关系 因为用的是NAT模式 我们编辑vi etc sysconfig
  • OpenGL error 0x0502

    项目出现OpenGL error 0x0502 导致有些UI绘制不出来 大致情况是这样 游戏切换到后台之后 其他玩家发来语音 在语音还在播放的时候 切换回前台 这个时候语音服务器 用的融云 会推送到安卓底层 安卓底层有回调到cocos2dx
  • Linux系统之neofetch工具的基本使用

    Linux系统之neofetch工具的基本使用 一 neofetch工具介绍 1 1 neofetch简介 1 2 neofetch特点 二 检查本地环境 2 1 检查操作系统版本 2 2 检查内核版本 三 安装neofetch工具 3 1
  • VMware Workstation Pro 安装教程

    文章目录 笔者的运行环境 VMware Workstation 16 Pro Red Hat Enterprise Linux 8 3 0 需要提前一个操作系统的镜像文件 ISO 这个文件与 VMware 无关 实际上 在安装完 VMwar
  • 生成字典的三种方式

    字典是记录一些特殊或有目的性的密码集合 通常以txt格式进行记录保存 在渗透许多服务器 smb ftp ssh 远程桌面rdp 网页后台等一些用户登录时 没有正确密码 使用密码字典爆破就是最直接的黑客攻击方法 一 使用cupp工具生成 1
  • 对输入数据排序后进行二分查找(C语言)

    输入数据后的排序方法有很多种 这里我用的是暴力排序 各位友友们可以尝试更改排序方法 include
  • Python selenium 滚动页面以及滚动至元素可见之详细讲解

    我们滚动浏览器页面向上 下 左右可以用一下代码 向上和向左需要加 向下滚动xx个像素 driver execute script window scrollBy 0 xx 向上滚动x个像素 driver execute script win
  • JM解码(一):参考帧列表和DPB处理

    以P帧为例 void alloc ref pic list reordering buffer Slice currSlice int size currSlice gt num ref idx active LIST 0 1 if cur
  • 谷粒商城-分布式高级篇[商城业务-订单服务]

    谷粒商城 分布式基础篇 环境准备 谷粒商城 分布式基础 业务编写 谷粒商城 分布式高级篇 业务编写 持续更新 谷粒商城 分布式高级篇 ElasticSearch 谷粒商城 分布式高级篇 分布式锁与缓存 项目托管于gitee 一 页面环境搭建
  • ubuntu freeradius 3.0 + mariadb

    安装数据库及Radius sudo apt update sudo apt install y freeradius freeradius mysql freeradius utils mariadb server mariadb clie
  • Unity Rotate鼠标控制人物旋转

    添加碰撞盒 一定要添加碰撞盒才能响应鼠标事件 将碰撞盒复制给骨架 如果鼠标划动的向量 X轴大于Y轴 则是左右划动 让它旋转 SpinWithMouse using System Collections using System Collec
  • 窗体,组件,事件

    窗体对象JFrame package frame import javax swing public class JFrameTest public static void main String args 创建窗体对象 JFrame jF