电脑知识与技术

浅析Java swing组件窗体设计

作者:佚名 来源:电脑知识与技术 202021期 时间:2020-09-13

摘要:Java Swing组件是早期AWT组件的升级版本,但也不能替代AWT,早期在java的GUl设计中,AWT未能达成跨平台却有统一风格的界面设计。Swing由...

  摘要: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-),女,江苏常州人,实验师,工程硕士。

转载请注明出处。

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 智能无线控制插线板的设计

    智能无线控制插线板的设计

  • 智能外卖自提柜系统的设计与实现

    智能外卖自提柜系统的设计与实现

  • 医院网络心理咨询平台的设计与开发

    医院网络心理咨询平台的设计与开发

  • 医学院校开展Python程序设计课程教学设计与实践

    医学院校开展Python程序设计课程教学设计与实践

网友点评
精彩导读