`
剑晨java
  • 浏览: 23569 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

JFrame设置背景

阅读更多
  第一种方法:
  我们首先要知道JFrame的结构,JFrame是由这么几部分组成:最底下一层JRootPane,上面是glassPane(一个JPanel)和layeredPane(一个JLayeredPane),而layeredPane又由contentPane(一个JPanel)和menuBar构成。如图所示

  我们平时加组件都是放在contentPane上,而设置背景图片我们可以把图片放到一个标签里,在把标签放到layeredPane里,并把contentPane设置为透明就可。
import java.awt.Font;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Test extends JFrame{
	public static void main(String args[]){
		new Test().initUI();
	}
	public void initUI(){
		ImageIcon icon=new ImageIcon("C:\\Users\\Administrator\\Pictures\\qq.jpg");
		JLabel label=new JLabel(icon);//把图片放到标签里
		//把标签加到LayeredPane,并使图片充满标签
		this.getLayeredPane().add(label,new Integer(Integer.MIN_VALUE));
		//把标签设置和图片同样大小
		label.setBounds(0, 0, icon.getIconWidth(), icon.getIconHeight());
		((JComponent) getContentPane()).setOpaque(false); //使ContentPane透明
		setSize(icon.getIconWidth(), icon.getIconHeight());	//设置窗体大小和图片大小一致
		setLayout(null);
		//在ContentPane继续加组件
		JButton button=new JButton("继续添加");
		button.setFont(new Font("宋体",Font.ITALIC+Font.BOLD,15));
		button.setBounds(40, 50, 100, 30);
		add(button);
		setVisible(true);
		
	}
}

结果如图所示:

不过这种方法只能根据图片大小去设置标签大小进而设置窗体大小才能使背景充满整个窗体,不太方便。也或许有我不知道的方法可以做到,如果读者知道,麻烦请告诉我一下,谢谢。下面我将给出另一种方法。
   (2)第二种方法。
    利用JPanel的public void paintComponent(Graphics g)方法把图片放到JPanel在把JPanel加到窗体上。这种方法可以改变图片的大小而使之充满窗体。
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

/**
 * 界面类
 */
public class Test1 extends JFrame{
	public static void main(String args[]){//程序入口
		new Test1().initUI();//实例化对象并调用创建窗体的方法
	}
	/**
	 * 创建窗体的方法
	 */
	public void initUI(){
		setTitle("排序界面");//设置窗体名字
		setSize(600,500);//设置窗体大小
		setResizable(false);//设置窗体大小不可变
		Panel panel=new Panel();//实例化对象
		panel.setLayout(null);//panel对象的布局设置为null
		Font font=new Font("宋体",Font.BOLD,18);//实例化字体样式对象
		JButton button=new JButton("继续添加");//实例化按钮对象
		button.setFont(font);//设置按钮字体样式
		button.setBounds(200, 200,150, 30);
		add(button);
		add(panel);//将panel容器对象添加到窗体
		setVisible(true);//使窗体显示
	
	}
}
/**
 * 设置背景图片的类
 *
 */
class Panel extends JPanel{
	Image im=Toolkit.getDefaultToolkit().getImage("C:\\Users\\Administrator\\Pictures\\qq.jpg");
	public void paintComponent(Graphics g){
		g.drawImage(im, 0, 0,400,300,null);
	}
}

结果如图所示:

归根到底,我们平时用的contentPane就是加在窗体的一个组件,而我们可以把图片设置在一个组件里也加到窗体里,就是要加在什么位置的考虑。
 
  • 大小: 18.6 KB
  • 大小: 10.1 KB
  • 大小: 20.2 KB
分享到:
评论

相关推荐

    JFrame设置背景色注意的事项

    如何设置JFrame的背景,需要注意的,设置Jpanel为透明

    JFrame边框阴影效果,窗口透明,组件不透明

    JFrame的窗口透明组件不透明改造成JFrame的阴影边框效果,依赖filter的jar包,已在资料之中,可直接下载导入使用.

    Jframe添加背景图片

    Jframe添加背景图片,图片根据你的显示框显示,里面有注解

    在jframe中将图像设置为背景图像

    给定链接对解决方案有相同的问题。 去那里在JFrame中设置背景图像[^]使用背景图像创建框架[^]

    更改标题栏背景并重写JFrame窗口

    对JFrame窗口进行了重写 最大最小化按钮可以改变(我用的是qq上的最大最小化按钮图标) 对JFrame进行更改 得到了自己想要的窗口 本窗口是用来做局域聊天窗口特别设计的 详细 内容 代码都有详细注释谢谢下载

    Netbeans java GUI 背景图片加载图文攻略

    这是Netbeans为jframe加载背景图片的办法,尽管看起来很简单。但在我不会之前,怎么都搞不到一起。会了之后,原来一行代码也不用写,就可以生成了 该资源:图文步骤俱全,绝对可以看明白。欢迎留言

    NetBeans中添加背景图片附源码

    NetBeans.NetBeans中添加背景图片附源码。

    JAVA JFrame(无边框可拖动)Dome

    整合了网上的一些JFrame添加背景,添加移动,无边框的代码,设计的还算好看吧!

    JFrame+java飞机大战

    有各种音效的飞机大战,具有登录功能,排行榜,购买功能。充值功能等你能想到的所有功能。

    背景图片随屏幕大小变化问题的解决方法

    特别是,在做页面背景图片可随浏览器窗口大小调整时,我的基础知识运用不熟练的缺点就表现出来了。 例如:今天下午做的页面背景时,由于图片过大,直接引用时,导致屏幕无法显示完全。 实际解决它的方法很简单: ...

    Java中播放背景音乐

    游戏动作音乐的插入,采用的播放音乐的格式是MIDI,Java提供专门的包来处理MIDI,包名为javax.sound.midi,当然,采用mp3格式的音乐同理,如果要循环播放MIDI音乐的话,可以使用Sequencer的isRunning()方法进行判断...

    java图片自动播放并有背景音乐

    使用JFrame自动播放图片并且添加了背景音乐的简单demo

    Java中JFrame添加图片的两种方法.pdf

    java界面编程中,为了页面的美观或者客户需要,界面中经常加入背景图片。介绍了界面中加入背景图片的两种方法。

    java 远程监控系统

    //将服务器图片作为背景 JLabel backImage = new JLabel(); JPanel panel = new JPanel(); //设置滚动条 JScrollPane scrollPane = new JScrollPane(panel); panel.setLayout(new FlowLayout()); ...

    Java制作小游戏:五子棋

    该游戏添加了背景音乐,能看懂源码的同学可以自由更换背景音乐。该项目主要使用了多线程、JFrame框架窗体、Panel面板、IO流、KeyListener键盘监听器以及音频播放等技术实现的。 Java基础入门,使用Java语言制作简单...

    java俄罗斯方块源代码(网络对战+道具使用+背景音乐播放+音效播放)

    jframe.java界面GUI类 nextpanel.java下一个方块画布类 soundeffect.java音效播放类 -------------------------------------------------------------------- 说明,内含编译好的j可执行jar程序,在正确安装jre的...

    俄罗斯方块(内附安装包、并可以改变背景颜色!)

    使用VS2008开发的一款自娱自乐的桌面小游戏,内附安装包,并带有项目源码供爱好者参看!还可改变背景颜色!

    Java制作小游戏:推箱子

    同学可以通过对源码的改动增加关卡数量以及关卡难度,并且该游戏添加了背景音乐,能看懂源码的同学可以自由更换背景音乐。该项目主要使用了多线程、JFrame框架窗体、Panel面板、IO流、KeyListener键盘监听器以及音频...

    java frame大鱼吃小鱼背景音乐键盘监听

    java写的一个小游戏,纯原创,适合初学者学习,有背景英语,各种鱼和种类

    swing中JTable的使用

    JFrame为自主布局,设置了背景图片以及窗口图标 有详细注释 例如: TableModel tableModel = jTable1.getModel(); DefaultTableModel dtm = (DefaultTableModel) tableModel; /* * TableModel是一个接口 没有删除一...

Global site tag (gtag.js) - Google Analytics