APP下载

浅析Java swing组件窗体设计

2020-08-21张丹丹

电脑知识与技术 2020年21期
关键词:子类窗体调用

摘要:Java Swing组件是早期AWT组件的升级版本,但也不能替代AWT,早期在java的GUl设计中,AWT未能达成跨平台却有统一风格的界面设计。Swing由Java语言编写而成,而lava语言本身不受操作系统影响,因此被称为轻量级组件,可以在不同的平台上达成统一的界面效果。Swing包的JComponent类继承了awt包的Container类,所以大多组件都和容器相联系,比如JFrame、JDialog、JPanel,这些类对象都需要转换成容器,从而容纳其他组件。该文从JFrame窗体人手,对容器极其相关设置做出分析。

关键词:swing; awt; JFrame; JPanel; getContentPane0

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2020)21-0160-02

开放科学(资源服务)标识码(OSID):

1 为Jframe对话框添加背景色

創建继承Jframe的test类,在该类构造函数中,初始化窗体的背景色。由于Jframe只是一个窗体框架,并不构成一个容器,因此首先创建Container类变量,再调用getContentPane0将该类转换成容器,通常在构造函数中初始化容器,可以使用Container c=getContentPane0来完成。然后用该容器变量调用setBackground(Color.orange),设置窗体背景为橘色,在这里如果未设置容器,比如直接使用this.getContentPane0,就无法将颜色添加至窗体。接着设置窗体大小和可见性,直接调用父类方法java awt.component.setSize(int, int), java awt.component.setVisible(true)。最后在主函数中创建该类实例即可。代码如图1:

2 为Jframe窗体添加背景图

实现该功能可通过将图片装载在JPanel面板上,然后在jframe容器中添加该jpanel面板。因为JPanel默认仅设置背景颜色,无法设置图片背景,所以通过重写该类paintComponent(Graphics g)方法,使用g.drawlmage0将图片画人面板。

具体过程可在项目中新建两个类:JFrame子类和JPanel子类。在JPanel子类中,该类构造函数无法给面板加载背景图片,因此使用Image类先将图片放人内存,在此过程中建立String类的字符串链接url,在写url的时候,地址操作符使用”\\”,因为在lava中”\”表示转义字符,如应写成:String url=”D:\\timg.jpg”。再通过Toolkit.getDefaultToolkitO.getlmage(url)获取本地磁盘的图片,Toolkit定义的部分方法可直接查询本地操作系统。该方法组合可使用string类作为参数,在此返回Image类对象。最后重写JPanel类的paintComponent(Graphics g)方法,先调用父类paintComponent0,实现大部分背景设置功能,然后再加入添加背景图片的功能,添加背景前,先获取图片宽度和高度,这两个值使用intimh=im.getHeight(this)和intimw=im.get-Width(this)来实现,注意,使用this作为参数,是指的lmage类本身,用来获取背景图的宽和高,作为背景图image的两个属性。在这里,如果不是用this作为参数,比如使用null,都会导致无法显示图片。接下来调用图形类方法drawlmage(im,0,0,null)(本例代码),可以调整第2和第3个参数,来显示图片特定部位。代码如图2:

下面在JFrame的子类中将窗体设置为容器,并将前面创建的JPanel面板添加进容器中,在这里注意到Container类为顶级容器,它是置顶的,它里面可以添加二级容器,如JPanel面板,或JScrollpane。具体步骤是在该类构造函数中,使用getCon-tentPane0将该类设置为容器,然后调用setSize(int,int)设置窗体大小,再创建jPanel对象,并将其添加至该容器,然后设置窗体可见,最后在主函数中创建该类对象。代码如图3:

参考文献:

[1]杨阳,基于Java Swing技术的学籍管理系统的设计与实现[Jl.福建电脑,2018(5):127-128.

[2]张会,基于Java的指法练习小游戏的设计与实现[Jl.电脑知识与技术,2017,13(32):85-86,96.

[3]潘国荣.Java Swing下文件复制的实现方法[J].电脑知识与技术,2019(33):37-38.

[4]陈砚雄.Java中Swing事件模型的应用[J].文教资料,2005(21):36-37.

[5]张会.基于Java的记事本程序的设计与实现.电脑知识与技术,2017(30):88-90.

[6]王素苹,一种基于Java Swing的网络聊天室的设计与实现[J].现代计算机(专业版),2012(7):64-67.

[7]陈子豪.Java Swing下计算器的设计与实王见[J].科技创新导报,2017,14(32):111-112.

【通联编辑:王力】

作者简介:张丹丹(1981-),女,江苏常州人,实验师,工程硕士。

猜你喜欢

子类窗体调用
卷入Hohlov算子的某解析双单叶函数子类的系数估计
核电项目物项调用管理的应用研究
试谈Access 2007数据库在林业档案管理中的应用
LabWindows/CVI下基于ActiveX技术的Excel调用
关于对称共轭点的倒星象函数某些子类的系数估计
基于系统调用的恶意软件检测技术研究
巧设WPS窗体控件让表格填写更规范
利用RFC技术实现SAP系统接口通信
块H矩阵新的子类
关于Java继承性的探讨