java 如何为一个窗体设置背景图片
来源:互联网 发布:金融数据挖掘与分析pdf 编辑:程序博客网 时间:2024/05/17 23:49
要为一个窗体添加背景图片,必须知道绘制JComponent组件的过程。Swing轻量组件的绘制是组件和组件UI代表合作的结果。
代码 设置窗体背景图片:
import java.awt.*;import java.awt.event.*;import javax.swing.*; public class GraExp extends JFrame{ CInstead c1=new CInstead();Container c;JLabel lbl1=new JLabel("姓名:" );JLabel lbl2=new JLabel("密码:" );JTextField tf1=new JTextField(10),tf2=new JTextField(10); public GraExp(){ setContentPane(c1);c=getContentPane();c.setLayout(new FlowLayout(FlowLayout.LEFT));c.add(lbl1);c.add(tf1);c.add(lbl2);c.add(tf2); setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);setSize(new Dimension(400,300));show();} public static void main(String[] args){ GraExp ge=new GraExp();} class CInstead extends JPanel{ ImageIcon icon;Image img;public CInstead(){ icon=new ImageIcon(GraExp.class.getResource("333.png" ));img=icon.getImage();} public void paintComponent(Graphics g){ super.paintComponent(g);g.drawImage(img,0,0,null );} } }
程序分析:
JComponent.paint先绘制组件,然后绘制组件的边框,再绘制组件的子组件。调用的顺序确保组件、边框和子组件都是可视的。如果组件有一个 UI代表,则JComponent.paintComponent调用该代表的Update方法,该方法为不透明组件擦除背景,然后绘制组件。
CInstead是一个不透明的组件,如果重载paint方法,其背景图是无法被擦除的,因此,即使更新了组件的所有包含组件,在界面上是看不到的。所以必须重载paintComponent方法,在绘制子组件前先擦除背景。
对双缓存组件,paint方法负责把组件绘制到屏外缓存中,然后把屏外缓存拷贝到组件的屏上代表中,正因为如此,我们不建议为Swing组件重载paint,如果需要重新定义如何绘制组件,那么就重载paintComponent()。
- java 如何为一个窗体设置背景图片
- java 如何为一个窗体设置背景图片
- Java-如何为frame窗口设置背景图片
- JAVA如何在为窗口设置背景图片
- JAVA如何在为窗口设置背景图片
- 如何为UINavigationBar设置背景图片
- 如何为UINavigationBar设置背景图片
- 如何为UINavigationBar设置背景图片
- QT中如何设置窗体的背景图片。
- QT中如何设置窗体的背景图片。
- QT中如何设置窗体的背景图片
- Java.swing-如何为frame窗口设置背景图片
- JAVA如何在为窗口设置背景图片(1.JFrame)
- java给窗体或面板设置背景图片
- Java Swing 之设置窗体背景图片
- [Java]JFrame如何设置背景图片
- java如何设置界面背景图片
- java如何设置JFrame背景图片
- 彻底弄懂CSS盒子模式(DIV布局快速入门)
- #pragma once
- 静态库(lib)的编写与调用
- SOJ 3191 Free square 容斥原理+二分
- Unix/Linux installation in disk, without cdrom.
- java 如何为一个窗体设置背景图片
- 8086编程模型
- Unix command tools and application links
- 顺序表结构的模版类
- C#语音实现
- ConcurrentModificationException
- gcc编译选项详解
- 【RTP.NET入门系列 前言】微软推荐的最好用的RTP组件
- _strlwr转小写