JAVASE 窗口

news2025/1/17 0:45:58

本文目录

  • 1、前言
  • 2、JFrame、JButton
  • 3、JLabl
  • 4、ImageIcon

1、前言

java提供了很多已经写好了的类供我们使用,而我们没必要去细腻研究它的构成原理,就好比我们让我们编程让机器人动起来,没必要细腻研究机器人每个器件是怎么做出来的一样,而Java提供的这些类就类似控制机器人动起来的接口,我们利用这些方法操纵机器人的移动即可

在这里插入图片描述

链式编程:

在这里插入图片描述

2、JFrame、JButton

代码:

import java.awt.print.Printable;
import java.util.*;

import javax.swing.JButton;
import javax.swing.JFrame;

public class Main{//继承父类Jframe,获取父类方法
	 
    public static void main(String[] args) { 
    	JFrame frame = new JFrame();//设置窗体类
    	frame.setTitle("按钮");
    	frame.setSize(500, 500);//设置尺寸
    	frame.setLocationRelativeTo(null);//设置窗体居中
    	frame.setAlwaysOnTop(true);//设置窗体置顶
    	frame.setDefaultCloseOperation(3);//设置窗体的关闭模式
    	frame.setVisible(true);//设置窗体可见
    	
    	//取消窗口默认布局
    	frame.setLayout(null);
    	
    	//创建按钮对象
    	JButton btn = new JButton();
     
    	//通过窗体对象,截取面板对象,并用add方法添加按钮组件
    	frame.getContentPane().add(btn);
    	
    	//由于取消了默认布局,所以要设定具体位置
    	
    	//设置位置
    	btn.setBounds(50, 50, 100, 100);
   }
 
}

在这里插入图片描述

3、JLabl

在这里插入图片描述

代码:

import java.awt.print.Printable;
import java.util.*;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Main{//继承父类Jframe,获取父类方法
	 
    public static void main(String[] args) { 
    	JFrame frame = new JFrame();//设置窗体类
    	frame.setTitle("按钮");
    	frame.setSize(500, 500);//设置尺寸
    	frame.setLocationRelativeTo(null);//设置窗体居中
    	frame.setAlwaysOnTop(true);//设置窗体置顶
    	frame.setDefaultCloseOperation(3);//设置窗体的关闭模式
    	frame.setVisible(true);//设置窗体可见
    	
    	//取消窗口默认布局
    	frame.setLayout(null);
    	
    	JLabel jb1 = new JLabel("玛卡巴卡");//区域
    	
    	jb1.setBounds(50, 50, 100, 100);//范围
    	
        JLabel jb2 = new JLabel("乌西滴西");//区域
    	
    	jb2.setBounds(150, 50, 100, 100);
    	
    	//添加
    	frame.getContentPane().add(jb1);
    	frame.getContentPane().add(jb2);
   }
 
}

在这里插入图片描述

4、ImageIcon

代码:

import java.awt.Image;
import java.awt.print.Printable;
import java.util.*;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Main{//继承父类Jframe,获取父类方法
	 
    public static void main(String[] args) { 
    	JFrame frame = new JFrame();//设置窗体类
    	frame.setTitle("按钮");
    	frame.setSize(500, 500);//设置尺寸
    	frame.setLocationRelativeTo(null);//设置窗体居中
    	frame.setAlwaysOnTop(true);//设置窗体置顶
    	frame.setDefaultCloseOperation(3);//设置窗体的关闭模式
    	frame.setVisible(true);//设置窗体可见
    	
    	//取消窗口默认布局
    	frame.setLayout(null);
    	
    	JLabel jb1 = new JLabel("玛卡巴卡");//区域
    	
    	jb1.setBounds(50, 50, 100, 100);//范围
    	
        JLabel jb2 = new JLabel("乌西滴西");//区域
    	
    	jb2.setBounds(150, 50, 100, 100);
    	
    	//添加
    	frame.getContentPane().add(jb1);
    	frame.getContentPane().add(jb2);
    	
    	
        //添加图片
    	ImageIcon mage = new ImageIcon("C:\\Users\\86153\\Pictures\\Saved Pictures\\16.jpg");
    	JLabel jb3 = new JLabel(mage);//将图片放在一个区域内
    	jb3.setBounds(150, 150, 100, 100);
    	frame.getContentPane().add(jb3);
    	
   }
 
}

在这里插入图片描述
代码:

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class MainFrame extends JFrame{//继承父类非私有方法,方便创建新的方法

	int[][] datas = { 	
			{1, 2, 3},
			{4, 5, 6},
			{7, 8, 9}
	};
	
//构造器
public MainFrame(){
	initFrame();
	pantview();
	//放在这里更保险
	setVisible(true);//设置窗体可见
}
	
//界面初始化
public void initFrame(){ 
	 setTitle("游戏");
	 setSize(804, 534);//设置尺寸
	 setLocationRelativeTo(null);//设置窗体居中
	 setAlwaysOnTop(true);//设置窗体置顶
	 setDefaultCloseOperation(3);//设置窗体的关闭模式
	//取消窗口默认布局
	 setLayout(null);
}

//图片放映
public void pantview(){ 	 
	
	for(int i = 0; i < 3; i ++)
		for(int j = 0; j < 3; j ++) {
			JLabel image = new JLabel(new ImageIcon("D:\\New_Study\\JAVA\\gameJAVA\\" + datas[i][j] + ".png"));//读取图片
			image.setBounds(100 + 202 * j, 100 + 112 * i, 200, 110);
			getContentPane().add(image);//将图片放入窗口
		}
	JLabel background = new JLabel(new ImageIcon("D:\\New_Study\\JAVA\\gameJAVA\\background.png"));//放入背景
	background.setBounds(100, 100, 604, 334);
	//后放的图片放在下面
	getContentPane().add(background);
}

}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/997891.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt Designer UI设计布局小结

目录 前言1 居中布局2 左右布局3 上下布局4 复杂页面布局总结 前言 本文总结了在开发Qt应用程序时使用 Designer 进行UI布局的一些心得体会。Qt Designer是Qt提供的一个可视化界面设计工具&#xff0c;旨在帮助开发人员快速创建和布局用户界面。它提供了丰富的布局管理器和控件…

系统架构设计专业技能 · 计算机组成与结构

现在的一切都是为将来的梦想编织翅膀&#xff0c;让梦想在现实中展翅高飞。 Now everything is for the future of dream weaving wings, let the dream fly in reality. 点击进入系列文章目录 系统架构设计高级技能 计算机组成与结构 一、计算机结构1.1 CPU 组成1.2 冯诺依曼…

【数据结构-队列】阻塞队列

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

vue学习之 v-for key

v-for key Vue使用 v-for渲染的元素列表时&#xff0c;它默认使用“就地更新”的策略。如果数据项的顺序被改变&#xff0c;Vue 将不会移动 DOM元素来匹配数据项的顺序&#xff0c;而是就地更新每个元素。创建 demo9.html,内容如下 <!DOCTYPE html> <html lang"…

60、RESTful 的高级配置---HttpMessageConverter

★ HttpMessageConverter的作用 RequestBody修饰处理方法的参数&#xff0c;如获取json格式的数据&#xff0c;将json格式的数据转换成我们需要的java对象&#xff0c; ResponseBody 这些把对象转成json格式响应给前端&#xff0c; 底层都是由这个HttpMessageConverter类实现的…

【Redis专题】大厂生产级Redis高并发分布式锁实战

目录 前言课程内容一、一个案例引发的思考二、Redis分布式锁的演进2.1 单纯使用Redis的setnx实现分布式锁2.2 setnx 过期时间3.3 Redisson实现分布式锁&#xff1a;setnx 过期时间 锁续命 三、Redisson客户端实现的分布式锁及源码分析 学习总结 前言 Redis中间件&#xff0…

文件上传之图片码混淆绕过(upload的16,17关)

目录 1.upload16关 1.上传gif loadup17关&#xff08;文件内容检查&#xff0c;图片二次渲染&#xff09; 1.上传gif&#xff08;同上面步骤相同&#xff09; 2.条件竞争 1.upload16关 1.上传gif imagecreatefromxxxx函数把图片内容打散&#xff0c;&#xff0c;但是不会…

Selenium - Tracy 小笔记2

selenium本身是一个自动化测试工具。 它可以让python代码调用浏览器。并获取到浏览器中加们可以利用selenium提供的各项功能。帮助我们完成数据的抓取。它容易被网站识别到&#xff0c;所以有些网站爬不到。 它没有逻辑&#xff0c;只有相应的函数&#xff0c;直接搜索即可 …

dubbo 服务注册使用了内网IP,而服务调用需要使用公网IP进行调用

一、问题描述&#xff1a; 使用dubbo时&#xff0c;提供者注册时显示服务地址ip为[内网IP:20880]&#xff0c;导致其他消费者在外部连接的情况下时&#xff0c;调用dubbo服务失败 二、解决办法 方法一、修改hosts文件 &#xff08;1&#xff09;. 先查询一下服务器的hostna…

【动态规划刷题 13】最长递增子序列 摆动序列

300. 最长递增子序列 链接: 300. 最长递增子序列 1.状态表示* dp[i] 表⽰&#xff1a;以 i 位置元素为结尾的「所有⼦序列」中&#xff0c;最⻓递增⼦序列的⻓度。 2.状态转移方程 对于 dp[i] &#xff0c;我们可以根据「⼦序列的构成⽅式」&#xff0c;进⾏分类讨论&#…

RabbitMQ管控台使用

安装成功RabbitMQ后&#xff0c;进入到管理控制台界面 拷贝配置文件到指定目录当中然后重启RabbitMQ。

FIR滤波器简述及FPGA仿真验证

数字滤波器的设计&#xff0c;本项目做的数字滤波器准确来说是FIR滤波器。 FIR滤波器&#xff08;有限冲激响应滤波器&#xff09;&#xff0c;与另一种基本类型的数字滤波器——IIR滤波器&#xff08;无限冲击响应滤波器&#xff09;相对应&#xff0c;其实就是将所输入的信号…

算法通关村第十九关——动态规划是怎么回事(青铜)

算法通关村第十九关——动态规划是怎么回事&#xff08;青铜&#xff09; 前言1 什么是动态规划2 动态规划的解题步骤3 简单入门3.1 组合总和3.2 最小路径和3.3 三角形最小路径和 4 理解动态规划 前言 动态规划是一种解决复杂问题的算法思想&#xff0c;它将一个大问题分解为多…

Apache HTTPD 多后缀名解析漏洞复现

什么是多后缀名解析漏洞加粗样式: 多后缀名解析漏洞&#xff08;Multiple Extension Handling Vulnerability&#xff09;指的是一种安全漏洞&#xff0c;发生在某些操作系统或网络服务中的文件扩展名处理机制中。 这种漏洞的本质是当文件具有多个后缀名&#xff08;例如file.…

l8-d12 IP协议与ethernet协议

一、IP协议作用和意义 分组在互联网中的传送 分组传输路径 二、IP 数据报首部格式 1.IP 数据报的格式 版本——占 4 位&#xff0c;指 IP 协议的版本。目前的 IP 协议版本号为 4 (即 IPv4)。 首部长度——占 4 位&#xff0c;可表示的最大数值是 15 个单位(一个单位为 4 字…

【Spring】手动实现Spring底层机制-问题的引出

&#x1f384;欢迎来到边境矢梦的csdn博文&#x1f384; &#x1f384;本文主要梳理手动实现Spring底层机制-问题的引出 &#x1f384; &#x1f308;我是边境矢梦&#xff0c;一个正在为秋招和算法竞赛做准备的学生&#x1f308; &#x1f386;喜欢的朋友可以关注一下&#x1…

【实践篇】Redis最强Java客户端(四)之Ression分布式集合使用指南

文章目录 0. 前言1.Ression分布式集合1.1 分布式列表1.1.1 使用场景和实现原理&#xff1a;1.1.2 基本概念和使用方法&#xff1a; 1.2 分布式集合1.2.1 使用场景和实现原理&#xff1a;1.2.2 基本概念和使用方法&#xff1a; 1.3 分布式映射1.3.1 使用场景和实现原理&#xff…

CSS三种样式表、样式表优先级、CSS选择器

一、CSS介绍&#xff1a; 1.1、CSS介绍&#xff1a; CSS&#xff0c;全称是&#xff1a;Cascading Style Sheets&#xff0c;层叠样式表&#xff0c;用于修饰HTML页面的。 CSS编写规则如下所示&#xff1a; CSS编写的规则分为两部分&#xff0c;分别是&#xff1a;选择器、声…

SpringMVC学习简要

学习资料&#xff1a; SpringMVC-03-入门案例工作流程解析_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1ZF411G7eP/?p3&spm_id_frompageDriver&vd_source4ac53f52a57eb96a3c8406b971b038ae 常用MYSQL命令&#xff1a;http://t.csdn.cn/zshCP 学习要求 什么是…

微信小程序Day4笔记

1. 组件的创建与引用 创建组件 在项目的根目录中&#xff0c;鼠标右键&#xff0c;创建components -> test文件夹在新建的test文件夹上&#xff0c;鼠标右键&#xff0c;点击新建Component键入组件的名称之后回车&#xff0c;会自动生成组件对应的4个文件&#xff0c;后缀…