Java设置窗体背景图像.docx_第1页
Java设置窗体背景图像.docx_第2页
Java设置窗体背景图像.docx_第3页
Java设置窗体背景图像.docx_第4页
Java设置窗体背景图像.docx_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java中设置窗体背景图像首先在java中没有直接可用的方法设置java窗体的背景图像,但是有两种方法可以间接完成设置窗体的背景颜色的设置,一种是利用标签按钮,另一种是面板来设置。首先介绍一下利用标签设置窗体背景图像。 标签本来是一种简单的组件,但是为什么可以用它来设置窗体的背景图像呢?首先还是先了解一下JFrame中层次结构。JFrame中层次分布以及相对关系是:最底层是JRootPane,第二层是JlayerPane,最上层是ContentPane(内容面板)。所以一般我们拖放的控件就是放在内容面板中。也就是说我们只需要将背景图片放在第二层中(JLayerPane)中。在把内容面板设置为透明。那么背景图片就成为了你所要的背景图片。实现代码: JPanel JP=new JPanel(); /创建面板JP对象 getContentPane().add(JP) /将JP面板设置为主面板 Icon I=new ImageIcon(123.jpg); /用原图片123.jpj构造一个ImageIcon对象I。需要注意的是如果图片的路径使用的是相对路径,则图片文件应该存在类文件所在文件夹或者项目的根文件夹中。否则图片的路径必须为绝对路径。JLabel LB=new JLabel(i); /用指定图片构造标签对象LBThis.getLayeredPane().add(LB, new Integer(Integer.MIN_VALUE); /放置标签在第二层中LB.setBounds(0,0,i.getIconWidth(), i.getIconHeight); /设置标签的尺寸就是图片的大小getConentPane().setOpaque(false); /设置面板为透明色,这样整个框架的背景就不在是内容面板的背景色,而是第二层中标签的图像。JP.add(LB) ; /添加标签在主面板中好了用标签做窗体的背景图像的设置就弄好了。但是利用标签设置窗体的背景图像的可扩展性差。并且在标签上不能放置其他控件。如果你在他的上边放置一个按钮控件的话他的整个面板就会乱。这主要是因为java加载组件是有顺序的。作为背景图像的Jlabel的控件一定是放在全部代码的最后。这样背景图片才不会被其他的控件遮盖。从而使整个布局背景错乱。所以采用这种方式设置背景图像有很大的局限性。所以该介绍一下另一种方式了利用面板控件来设置背景图像。 2:通过JPanel面板设置背景窗体图像 首先我们应该清楚JPanel是java容器之一。然而java中的容器是没有设置窗体图像这个属性的。它们只有设置设置背景颜色的功能。但是如果要在JPanel面板中设置窗体背景图像。就需要从写paintComponent(Graphicsg)方法。既把所有的设置的背景图像画上作为JPanel面板的背景图像。实现步骤如下: 首先定义一个Jpanel的子类,由于Jpanel的构造方法不能添加图像。因此在创建这个子类的时候用getImag载入一幅背景图像。在从写paintComponent(Graphics g) 方法时。利用drawImage方法将其逐渐绘制在屏幕上。并将该面板添加在框架中。最后将面板设置为透明: Import java.awt.*; Import javax.swing.*; Public class APublic static void main(String argc)BJFrame f=new BJFrame ();f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setVisible(true); Class BJFrame extends JFramePublic BJFrame() setSize(WTH,HHT); BJFrame p1=new BJFrame(); Container contentPane =getContenPane();contentPane.add(p1);p1.setOpaque(true);Public static final int HHT=200;Class BJPanel extends JPanel Image im; Public BJPanel() Im=Toolkit.getDefaultToolkit().getImage(“123.jpg”);Public void paintComponent(Graphics g) Super.paintComponent(g); Int imwidth=image.getWidth(this); Int imheight=image.getHeight(this); Int FWidth=getWidth();Int FHeight=getHeight(); I

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论