1利用标签组件来设置\x0d\x0a标签本来是一种最简单的组件,为什么可以将它设置成为一个窗体的背景呢?首先还是要了解框架JFrame中的层次结构。JFrame中的层次分布及相对关系是:最底层是JRootPane,第二层是JlayerPane,最上层就是ContentPane,也正是我们常说的内容面板。所以一般我们拖放的控件就是在ContentPane层上。也就是说我们只需将背景图片放在JFrame的第二层是JlayerPane上,再把内容面板ContentPane设置为透明,则第二层JlayerPane上放置的图片即成为内容面板的背景了。具体代码如下:\x0d\x0aJPanelpnlMain=newJPanel()//创建面板pnlMain。\x0d\x0agetContentPane().add(pnlMain)//将pnlMain设置为主面板。\x0d\x0aIconi=newImageIcon("背景.jpg")/*用源图片“背景.jpg”构造一个ImageIcon对象i,需要注意如果图片的路径使用的是相对路径,则图片文件必须放在类文件所在文件夹或项目的根文件夹中,否则图片的路径必须用绝对路径。*/\x0d\x0aJLabellblLogo=newJLabel(i)//用指定的图片构造标签对象lb\x0d\x0athis.getLayeredPane().add(lb,newInteger(Integer.MIN_VALUE))\x0d\x0a//把标签放在第二层JlayerPane上。\x0d\x0alb.setBounds(0,0,ii.getIconWidth(),i.getIconHeight())\x0d\x0a//设置标签的尺寸,即背景图象的大小。\x0d\x0agetConentPane().setOpaque(false)/*把内容面板设置为透明,这样整个框架的背景就不再是内容面板的背景色,而是第二层中标签的图像。*/\x0d\x0apnlMain.add(lb)//将标签添加到主面板pnlMain中。\x0d\x0a用标签组件JLabel来设置窗体背景,其扩展性上比较差,且在标签上不能放置其他组件,比如:在放置一个JButton,整个布局背景图就错乱。导致这种现象是因为Java加载组件是有顺序的,作为背景的JLabel的代码一定要放在全部组件代码的最后,这样JLabel的背景图片才不会被其他组件遮住,从而使整个布局背景错乱。所以采用这种方式来设置窗体背景有很大的局限性。因此最好是采用以下方式来设置窗体背景。\x0d\x0a2通过JPanel面板来设置窗体背景\x0d\x0aJPanel面板是Java中的容器之一。而Java中的容器是没有背景图片的属性的,它们只有背景颜色,如果需要在JPanel面板上设置窗体背景,就需要重写paintComponent(Graphicsg)方法,即把所要设置的背景图片画上作为JPanel面板的背景。具体实现如下:\x0d\x0a首先定义一个JPanel的子类BjPanel,由于JPanel的构造方法不能添加图像,因此在创建此子类的时候先用getImage载入一幅背景图片,在重写paintComponent(Graphicsg)方法时,利用drawImage方法将其逐渐绘制到屏幕上,并将该面板添加到框架中,最后将该面板设置为透明。其代码如下:\x0d\x0aimportjava.awt.*\x0d\x0aimportjavax.swing.*\x0d\x0apublicclassbkground\x0d\x0a{\x0d\x0apublicstaticvoidmain(Stringargs[])\x0d\x0a{\x0d\x0aBjFramef=newBjFrame()\x0d\x0af.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)\x0d\x0af.setVisible(true)\x0d\x0a}\x0d\x0a}\x0d\x0aclassBjFrameextendsJFrame\x0d\x0a{\x0d\x0apublicBjFrame()\x0d\x0a{\x0d\x0asetSize(WTH,HHT)\x0d\x0aBjPanelpl=newBjPanel()\x0d\x0aContainercontentPane=getContentPane()\x0d\x0acontentPane.add(pl)\x0d\x0apl.setOpaque(true)\x0d\x0a}\x0d\x0apublicstaticfinalintWTH=300\x0d\x0apublicstaticfinalintHHT=200\x0d\x0a}\x0d\x0aclassBjPanelextendsJPanel\x0d\x0a{\x0d\x0aImageim\x0d\x0apublicBjPanel()\x0d\x0a{\x0d\x0aim=Toolkit.getDefaultToolkit().getImage("背景.jpg")//需要注意的是如果用相对路径载入图片,则图片文件必须放在类文件所在文件夹或项目的根文件夹中,否则必须用绝对路径。\x0d\x0a}\x0d\x0apublicvoidpaintComponent(Graphicsg)\x0d\x0a{\x0d\x0asuper.paintComponent(g)\x0d\x0aintimWidth=image.getWidth(this)\x0d\x0aIntimHeight=image.getHeight(this)//定义图片的宽度、高度\x0d\x0aintFWidth=getWidth()\x0d\x0aintFHeight=getHeight()//定义窗口的宽度、高度\x0d\x0aintx=(FWidth-imWidth)/2\x0d\x0ainty=(FHeight-imHeight)/2//计算图片的坐标,使图片显示在窗口正中间\x0d\x0ag.drawImage(image,x,y,null)//绘制图片\x0d\x0a}\x0d\x0a}仅仅是给窗口添加背景的话是很简单的,添加上以下语句(自己去添加变量哈):\x0d\x0a\x0d\x0alabel = new JLabel(background)//background为ImageIcon\x0d\x0a// 把标签的大小位置设置为图片刚好填充整个面板 \x0d\x0alabel.setBounds(0, 0, this.getWidth(), this.getHeight())\x0d\x0a//添加图片到frame的第二层(把背景图片添加到分层窗格的最底层作为背景)\x0d\x0athis.getLayeredPane().add(label,new Integer(Integer.MIN_VALUE))\x0d\x0a//把内容窗格转化为JPanel,否则不能用方法setOpaque()来使内容窗格透明\x0d\x0ajPanel=(JPanel)this.getContentPane()\x0d\x0a//设置透明\x0d\x0ajPanel.setOpaque(false)\x0d\x0a\x0d\x0a然后你上面那个JPanel p也设置成透明就可以了
java怎么给窗体或者面板设置背景图片?
给您推荐相同类型的内容:
如何在DISCUZ论坛引入微信JSSDK与分享功能
首先在公众号管理后台“公众号设置”的“功能设置”里填写JS接口安全域名,域名需要通过ICP备案,没有备案域名可以用SAE、BAE等平台。自定义分享功能需要通过微信认证才能使用,没有认证的可以跟关系好的朋友借用权限,在他的JS接口安全域名设置在jsp中怎样加入css样式
jsp中直接加 <style><style>标签,标签内写css,或者<link rel="stylesheet" type="textcss&q顺序结构是什么?
顺序结构是C语言的基本结构,程序由上而下运行,运行完上条语句再往下运行, 平时写的程序基本都用到顺序结构。顺序结构是最简单的程序结构,也是最常用的程序结构,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。资料:小米Ruby怎么样,详细详细!谢谢
小米 (MI)Ruby 15.6英寸金属轻薄 FHD可以的哈,是他们才发布不久的新品,外观多时尚的,整体看着相当小巧精致的,质感蛮不错的,我有好几个朋友已经用上了,我自己也是才购不久的,外观是我喜欢的,然后手感不错,游戏一点儿也不卡,到现在GO语言(二十七):管理依赖项(下)-
当您对外部模块的存储库进行了 fork (例如修复模块代码中的问题或添加功能)时,您可以让 Go 工具将您的 fork 用于模块的源代码。这对于测试您自己的代码的更改很有用。 为此,您可以使用go.mod 文件中的replace电脑上已经连了wifi,如何换另一个wifi连接?
这种情况下叫做中继,现在的路由器都是智能路由,都有中继的选项,在一个路由器中选择中继模式,再选择需要连接的WIFI名字,输入密码后即可。我用小米路由器举例:1.选择上网方式2.切换模式3.选择中继模式4.选中需要连接的网络,输入密码5.java获取注解的值
很多朋友都想知道java怎么获取注解的值?下面就一起来了解一下吧~1、定义一个注解,用于给全局变量field字段赋值package com.haha.study.annotation.value import java.lang.aruby扮演者
港片《龙在江湖》中女主ruby是关秀媚主演的。《龙在江湖》电影最后,韦吉祥先是被人从背后用锤子击昏,然后被人捅了,而凶手应该是基本没有嫌疑的RUBBY姐。这部电影,除了将韦吉祥低贱的黑老大生活,另外一方面就是讲女人。一个女人为了他心爱的怎样改电脑的IP地址
电脑的IP地址分公网(也叫外网)IP地址和内网(也叫局域网)IP地址,两种地址的修改方法如下:一、内网(也叫局域网)ip地址,WIN7、WIN10、WIN8、WIN11下1、在桌面上鼠标右键点击“网络”;2、选择“属性”——>左请问这个动漫人物是谁,在哪个动漫里?
您好~这是RWBY中的RUby.现在该动画每周五更新一次RWBY是一部在2013年7月播出的动画。R、W、B、Y 分别是英语红白黑黄的首字母,代表的分别是四位女主角的主题色。由美国 Rooster Teeth 动画工作室RWBY团队制作怎么看自己的电脑是不是正版的系统?
1、在电脑上下载一个电脑管家找到任务栏"工具箱"在右上角找到"其他"选项。2、在”其他“选项里点击”硬件检测"。3、里面会显示关于电脑系统详的细信息。4、打开自己的电脑查看系统信息,观察电脑孤单车神:维加斯怎么下载?
1、首先进入《八门神器》app首页,2、点击搜索框,在搜索栏里搜索《孤胆车神:维加斯》,如下图:3、点击进入游戏应用详情页可以查看游戏详细信息,然后点击“下载”按钮进行下载,如下图:4、下载完成后点击安装,这里有2种方式安装都可以,5、接下利用电脑赚钱的副业
利用电脑赚钱的副业利用电脑赚钱的副业,人们的生活压力是越来愈大,很多朋友的工资还完贷款后就没有剩余的,最近很多朋友都说想做副业,但是不知道做什么,下面我就来分享一下利用电脑赚钱的副业,快来看看吧利用电脑赚钱的副业1 做微商go语言适合做什么
Go语言主要用作服务器端开发。其定位是用来开发“大型软件”的,适合于需要很多程序员一起开发,并且开发周期较长的大型软件和支持云计算的网络服务。Go语言融合了传统编译型语言的高效性和脚本语言的易用性和富于表达性,不仅提高了项目的开发速度,而笔记本电池怎样才能经久耐用啊?
1. 调整Windows系统设置尝试调整以下计算机设置,以节省电池电量耗用。● 减少开启的应用程序数量: 由于应用程序会耗用内存和电源,即使当应用程序最小化或是在背景执行中也会耗用。请关闭应用程序以节省电量耗用。●降低屏幕亮度: 降低golang使用Nsq
1. 介绍 最近在研究一些消息中间件,常用的MQ如RabbitMQ,ActiveMQ,Kafka等。NSQ是一个基于Go语言的分布式实时消息平台,它基于MIT开源协议发布,由bitly公司开源出来的一款简单易用的消息中间件。 官方和在js中,“事件冒泡”是什么意思?
事件冒泡:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发。即子级元素先触发,父级元素后触发。js的优点:在JavaScript这样的用户端脚本语言语言出现之前,传统的数据提交和验证工作均由用户端浏览器通过ruby怎么读取文件的列数
简单说一下吧,假设你有一个名为example.txt的文件,里面的内容如下:bbb ccc 123ddd aaa 456abc efg 789695 aaa uwi注意,这里我举的例子每一列是用空格分隔的。用ruby读取的代码如下:f =怎么自学c语言,需要怎么学习?
学习中的困难莫过于一节一节的台阶,虽然台阶很陡,但只要一步一个脚印地踏,攀登一层一层的台阶,才能实现学习的最高理想。C语言学不会怎么办?我大一的时候也需要学C语言,C语言自学方法有很多,下面是我的建议。1.首先应该记住基础知识点,如数组如何降低电脑内存占用率?
如果您的电脑内存占用率过高,您可以考虑以下几种方法来降低内存占用率:1.关闭不需要的程序:在任务管理器中关闭那些消耗大量内存的程序。2.清理系统垃圾:使用系统清理工具(如Windows自带的Disk Cleanup)3.关闭后台进程:有几种常见的css布局方式
四种方式 比如想要做这样一个布局,有哪几种方式。 最简单、最快捷的方式。 element-ui提供的布局容器,el-header头标签,有height属性。el-aside左侧边栏标签,有width属性。el-footer底部CSS中的嵌入,内联,外联式都是什么形式?用在什么情况下?
外联式样式(属于外部样式表)。特征:1、有一个单独的CSS文件存在![如:001.css]2、通过【格式】→【样式表连接】与CSS文件[001.css]建立连接!3、在合适的地方使用 class="样式名" 调用js如何判断输入的数据是整数还是小数
可以转换为整数parseInt(number)和原来的数比较。也可以转换成字符串判断。var str = number+""if(str.indexOf(".")==-1){alert(&qupython版本五子棋
机器博弈是人工智能领域的重要分支,它的研究对象多以复杂的棋牌类智力游戏为主,已经得到解决的棋类游戏,几乎全部都应归功于机器博弈近半个世纪的发展。计算机解决问题的优势在于能把不易解析的问题,借助于现代计算机的运算速度优势枚举出所有的合理情形在网页打印显示请求服务器成功,但回调JS方法出错!
js打印建议用jquery.PrintArea.min.js将要打印的内容都放入一个div中,假设id为myprint,然后调用:$("#myprint").printArea()打印网页中定义的部分内容的实现方法正常情会计学和金融学的就业前景,分别是什么?
金融学 属于经济学门类,专业代码:020301,包含金融学、金融工程、保险学、财政学,四个专业。旨在培养德智体美全面发展,具备宽厚扎实的现代经济金融理论基础、较强的金融业务操作和金融管理技能,掌握现代经济分析方法,具有较高的外语和计算go语言适合做什么
go语言适用的领域有:Go语言主要用作服务器端开发,其定位是用来开发“大型软件”的,适合于很多程序员一起开发大型软件,并且开发周期长,支持云计算的网络服务。Go语言作为服务器编程语言,很适合处理日志、数据打包、虚拟机处理、文件系统、分布特效团队用的什么电脑
特效处理还是用Mac多吧,苹果有专门为这些专业用户设计了一种工作站Mac Pro。配置的确要很高,处理器、内存、显卡、硬盘这四样最重要,全都是工作站级别的配置,比如说每台主机都要配2个4核的CPU,8G以上的内存,TB级的硬盘以及最重要的如何利用js正则表达式判断ip地址的合法性
用正则表达式判断吧:publicstaticvoidRunSnippet(){Regexrx=newRegex(@"((?:(?:25[0-5]|2[0-4]d|((1d{2})|([1-9]?d))).){3}(?:25Go语言基础语法(一)
本文介绍一些Go语言的基础语法。 先来看一个简单的go语言代码: go语言的注释方法: 代码执行结果: 下面来进一步介绍go的基础语法。 go语言中格式化输出可以使用 fmt 和 log 这两个标