java怎么给窗体或者java 面板放到窗体设置背景图片?

2065人阅读
Java(26)
要为一个窗体添加背景图片,必须知道绘制JComponent组件的过程。Swing轻量组件的绘制是组件和组件UI代表合作的结果。&
代码 &设置窗体背景图片:
界面运行图如下:&
程序分析:&
JComponent.paint先绘制组件,然后绘制组件的边框,再绘制组件的子组件。调用的顺序确保组件、边框和子组件都是可视的。如果组件有一个 UI代表,则JComponent.paintComponent调用该代表的Update方法,该方法为不透明组件擦除背景,然后绘制组件。&
CInstead是一个不透明的组件,如果重载paint方法,其背景图是无法被擦除的,因此,即使更新了组件的所有包含组件,在界面上是看不到的。所以必须重载paintComponent方法,在绘制子组件前先擦除背景。&
对双缓存组件,paint方法负责把组件绘制到屏外缓存中,然后把屏外缓存拷贝到组件的屏上代表中,正因为如此,我们不建议为Swing组件重载paint,如果需要重新定义如何绘制组件,那么就重载paintComponent()。&
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:293437次
积分:6563
积分:6563
排名:第3619名
原创:128篇
评论:1503条
(2)(3)(3)(2)(2)(1)(2)(4)(1)(2)(4)(2)(4)(2)(1)(4)(3)(3)(4)(4)(5)(6)(4)(3)(3)(3)(3)(2)(4)(2)(2)(2)(2)(3)(2)(1)(1)(3)(2)(4)(5)(3)(2)(3)(3)(3)(2)(4)藤本植物导航
&>&&>&&>&正文
Java 怎么给JFrame添加背景图片 我想给容器添加一个背景图片 代码怎么写...import javax.swing.*; public class IS extends JFrame { IS(){ JPanel p=new JPanel(); JLabel l=new JLabel(); Icon icon=new ImageIcon("D:\\a.jpg"); //在此直接创建对象 l.setIcon(icon); l.setBounds(0, 0, icon.getIconWidth(),icon.get...
JAVA窗体添加背景图片
import javax.swing.*;import java.awt.event.*;import java.awt.*;import java.sql.*;public class DengLu extends JFrame {
public JLabel name = new JLabel(&用户名&);
public JLabel pass = new JLabel(&密 码&);
public JTextField userName = new JTextField();
public JPasswordField passWord = new JPasswordField();
public Button bok = new Button(&登陆&);
public Button bexit = new Button(&取消&);
public DengLu() {
this.setContentPane(new MyPanel());
setTitle(&欢迎使用学生成绩管理系统&);
setLayout(null);
setSize(500, 400);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Dimension scr = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frm = this.getSize();
setLocation( (scr.width - frm.width) / 2,
(scr.height - frm.height) / 2 - 18);
name.setBounds(70, 260, 120, 20);
userName.setBounds(120, 260, 120, 27);
pass.setBounds(70, 300, 120, 20);
passWord.setBounds(120, 300, 120, 27);
passWord.setEchoChar('*');
bok.setBounds(340, 260, 100, 28);
bexit.setBounds(340, 300, 100, 28);
add(name);
add(userName);
add(pass);
add(passWord);
add(bexit);
setVisible(true);
bexit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {//dispose();
System.exit(0);
bok.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (userName.getText().equals(&&)) {
JOptionPane.showMessageDialog(null, &用户名不能为空!&);
} else if (passWord.getText().equals(&&)) {
JOptionPane.showMessageDialog(null, &密码不能为空!&);
if (userName.getText().equals(&admin&) &&
passWord.getText().equals(&admin&)) {
dispose();//
new MainFrame();
JOptionPane.showMessageDialog(null, &密码错误&);
userName.setText(null);
passWord.setText(null);
public static void main(String args[]) {
new DengLu();
private class MyPanel extends JPanel {
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
super.paintComponent(g);
Image img = Toolkit.getDefaultToolkit().getImage(&zsjm.jpg&);
g2.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);
}}JAVA窗体添加背景图片import javax.swing.*;import java.awt.event.*;import java.awt.*;import java.net.URL;public class Login extends JFrame { public JLabel name = new JLabel(&用户名&); public J
Java 怎么给JFrame添加背景图片 我想给容器添加一个背景图片 代码怎么写...import javax.swing.*; public class IS extends JFrame { IS(){ JPanel p=new JPanel(); JLabel l=new JLabel(); Icon icon=new ImageIcon("D:\\a.jpg"); //在此直接创建对象 l.setIcon(icon); l.setBounds(0, 0, icon.getIconWidth(),icon.get...入题: 可以使用Lable吗。还是直接设置背景图片的路径?各位高手多提供...//示例代码,下面的注释有说明背景图片 import java.awt.C import java.awt.event.ActionE import java.awt.event.ActionL import javax.swing.ImageI import javax.swing.JB import javax.swing.JF impor... import java.awt.*; import java.awt.event.*; import j...Image image=new ImageIcon("back.jpg").getImage(); ////// //覆盖JFrame的 paint方法 public void paint(Graphics g){ super.paint(g); g.drawImage(image, 0,0, null); }import java.awt.*; import java.net.URL; import javax.swing.*; publi...使用 标签就可以导入了,如果想旁边有字可以使用分隔符 代码: /* * 功能:显示海贼王图片,以及分割字符 * 分割涉及到swing的一个新组件 JSplitPane * 该组件属于容器组件 */ package cn.GUI; import java.awt.*; import javax.swing.*; public...// Login.java package MainP import java.awt.*; import java.awt.e...在登陆窗口所在的元素上写样式 用户名:…… 密码:…… 我在问问上看到了你的分析,可是我还是有点不懂特想你请教哦。 呵呵1 利用标签组件来设置 标签本来是一种最简单的组件,为什么可以将它设置成为一个窗体的背景呢?首先还是要了解框架JFrame中的层次结构。JFrame中的层次分布及相对关系是:最底层是JRootPane,第二层是JlayerPane,最上层就是ContentPane,也正是我们常...package free.import java.awt.Cimport java.awt.Pimport java.awt.event.MouseAimport java.awt.event.MouseEimport java.awt.event.MouseMotionAimport javax.swing.BorderFimport javax.swing.Im...可以新建个面板,在面板里放入带图片的JLabel,填满面板即可。 JPanel jp = new JPanel(); //新建面板 jp.setLayout(new FlowLayout()); //设置面板布局 ImageIcon ii=new ImageIcon(getClass().getResource("/Picture/i.jpg")); JLabel uppictu...JPanel jp=new JPanel()://定义面板并初始化Icon iocn=new ImageIcon("C:/My Documents/tupian.jpg");//定义图片并初始化,写上图片的绝对路径JLabel jl=new JLabel(icon)://把图片放在标签上jp.add(jl);//往面板上添加标签注意:面板JPanel不能...
种植经验最新
种植经验推荐
& 6种植网 版权所有
渝ICP备号-23您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
试析在Java中如何设置窗体的背景图像.pdf1页
本文档一共被下载:
次 ,您可免费全文在线阅读后下载本文档
文档加载中...广告还剩秒
需要金币:150 &&
你可能关注的文档:
··········
··········
在Java中如何设置窗体 的背景图像
(黄石职业技术学院
要: 在Java中设置窗体背景图像没有直接可用的方法,需要用很多代码来处理。总结起来两种方法可以完成这样的设置:一是用标签组件,二是用面板
关键词: 设置;窗体背景;图像
中图分类号:TP3
文献标识码:A
文章编号:(0-01
在进行图形用户界面设计时,为了能够做出美观、个性化的图形用户
界面,经常需要把一些图片设置为窗体中的背景。但在Java编程中,设置
public static void main String args[]
窗体的背景却没有直接可用的方法,需要用很多代码来处理。一般可通过
以下两种方法来设置。
1 利用标签组件来设置
f.setDefaultCloseOperation JFrame.EXIT_ON_CLOSE ;
标签本来是一种最简单的组件,为什么可以将它设置成为一个窗体的
f.setVisible true ;
背景呢?首先还是要了解框架JFrame中的层次结构。JFrame中的层次分布
及相对关系是:最底层是JRootPane,第二层是JlayerPane,最上层就是
ContentPane,也正是我们常说的内容面板。所以一般我们拖放的控件就是
class BjFrame extends JFrame
在ContentPane层上。也就是说我们只需将背景图片放在JFrame的第二层是
JlayerPane上 , 再 把 内容 面 板 Content
正在加载中,请稍后...欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 10024 人关注过本帖
标题:【求助】如何在java窗体中添加背景图片
等 级:新手上路
结帖率:100%
&&已结贴√
&&问题点数:15&&回复次数:4&&&
【求助】如何在java窗体中添加背景图片
这是我的代码,想在这个窗体中插入同文件夹下的ABC.jpg图片座位背景~~希望各位高手帮帮忙
import java.awt.*;
import java.awt.event.*;
public class ct extends Frame implements ActionListener
&&& static ct frm=new ct();
&&& static MenuBar mb=new MenuBar();
&&& static Menu menu0=new Menu(&文件&);
&&& static Menu menu1=new Menu(&编辑&);
&&& static Menu menu2=new Menu(&查看&);
&&& static Menu menu3=new Menu(&工具&);
&&& static Menu menu4=new Menu(&帮助&);
&&& static MenuItem mi0_1=new Menu(&新建&);
&&& static MenuItem mi0_2=new Menu(&删除&);
&&& static MenuItem mi0_3=new Menu(&重命名&);
&&& static MenuItem mi0_4=new Menu(&属性&);
&&& static MenuItem mi0_5=new MenuItem(&关闭&);
&&& static MenuItem mi1_1=new Menu(&撤销&);
&&& static MenuItem mi1_2=new Menu(&剪切&);
&&& static MenuItem mi1_3=new Menu(&复制&);
&&& static MenuItem mi1_4=new Menu(&粘贴&);
&&& static MenuItem mi1_5=new Menu(&全选&);
&&& static MenuItem mi2_1=new Menu(&刷新&);
&&& static MenuItem mi3_1=new Menu(&设置&);
&&& static MenuItem mi3_2=new Menu(&选项&);
&&& static MenuItem mi4_1=new Menu(&帮助主题&);
&&& static MenuItem mi4_2=new Menu(&关于&);
&&& static Button btn1=new Button(&连&&连&&看&);
&&& static Button btn2=new Button(&俄罗斯方块&);
&&& static Button btn3=new Button(&猜&&&&&&拳&);
&&& static Button btn4=new Button(&猜&&&&&&数&);
&&&public static void initGUI(){
&&&&&&&&frm.setTitle(&管理员界面&);
&&&&&&&&btn1.setBounds(400,100,100,30);
&&&&&&&&btn2.setBounds(550,100,100,30);
&&&&&&&&btn3.setBounds(700,100,100,30);
&&&&&&&&btn4.setBounds(850,100,100,30);
&&&&&&&&frm.add(btn1);
&&&&&&&&frm.add(btn2);
&&&&&&&&frm.add(btn3);
&&&&&&&&frm.add(btn4);
&&&&&&&&mb.add(menu0);
&&&&&&&&mb.add(menu1);
&&&&&&&&mb.add(menu2);
&&&&&&&&mb.add(menu3);
&&&&&&&&mb.add(menu4);
&&&&&&&&menu0.add(mi0_1);
&&&&&&&&menu0.add(mi0_2);
&&&&&&&&menu0.add(mi0_3);
&&&&&&&&menu0.add(mi0_4);
&&&&&&&&menu0.add(mi0_5);
&&&&&&&&menu1.add(mi1_1);
&&&&&&&&menu1.add(mi1_2);
&&&&&&&&menu1.add(mi1_3);
&&&&&&&&menu1.add(mi1_4);
&&&&&&&&menu1.add(mi1_5);
&&&&&&&&menu2.add(mi2_1);
&&&&&&&&menu3.add(mi3_1);
&&&&&&&&menu3.add(mi3_2);
&&&&&&&&menu4.add(mi4_1);
&&&&&&&&menu4.add(mi4_2);
&&&&&&&&mi0_5.addActionListener(frm);
&&&&&&&&mi1_1.addActionListener(frm);
&&&&&&&&mi1_2.addActionListener(frm);
&&&&&&&&mi1_3.addActionListener(frm);
&&&&&&&&mi1_4.addActionListener(frm);
&&&&&&&&mi1_5.addActionListener(frm);
&&&&&&&&mi2_1.addActionListener(frm);
&&&&&&&&mi3_1.addActionListener(frm);
&&&&&&&&mi3_2.addActionListener(frm);
&&&&&&&&mi4_1.addActionListener(frm);
&&&&&&&&mi4_2.addActionListener(frm);
&&&&&&&&frm.setSize();
&&&&&&&&frm.setBackground(Color.yellow);
&&&&&&&&frm.setMenuBar(mb);
&&&&&&&&frm.setVisible(true);
&&&&&&&&frm.addWindowListener(new WindowAdapter()
&&&&&&&&&{
&&&&&&&&&&&&public void windowClosing(WindowEvent e)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& System.exit(0);
&&&&&&&&&&&&}}) ;
&&& public static void main(String args[])
&&&&&&&&initGUI();
&&& public void actionPerformed(ActionEvent e)
&&&&&&&&MenuItem mi=(MenuItem)e.getSource();
&&&&&&&&if(mi==mi0_5)
&&&&&&&&System.exit(0);
&&&&&&&&else if(mi==mi2_1)
&&&&&&&&frm.setBackground(Color.pink);
&&& public void windowClosing(WindowEvent e)
&&&&&&&&frm.dispose();
&&&&&&&&System.exit(0);
搜索更多相关主题的帖子:
等 级:版主
威 望:54
帖 子:2508
专家分:6424
AWT要重写paint, 用Swing方便些, 同意3L版主
[ 本帖最后由 lampeter123 于
10:38 编辑 ]
你的优秀和我的人生无关!!!!
    我要过的,是属于我自己的生活~~~
等 级:贵宾
威 望:14
帖 子:279
专家分:1362
&&得分:15&
设置背景图片要重绘组件。我把你的组件全部换成swing的,代码如下:程序代码:package
import java.awt.C
import java.awt.G
import java.awt.event.ActionE
import java.awt.event.ActionL
import java.awt.event.WindowA
import java.awt.event.WindowE
import javax.swing.ImageI
import javax.swing.JB
import javax.swing.JF
import javax.swing.JL
import javax.swing.JM
import javax.swing.JMenuB
import javax.swing.JMenuI
import javax.swing.JP
public class ct extends JFrame implements ActionListener {
&&& static ct frm = new ct();
&&& static JPanel panel = new JPanel(){
&&&&&&&&public void paintComponent(Graphics g) {
&&&&&&&&&&&&ImageIcon icon = new ImageIcon(&src/lin/1.jpg&);
&&&&&&&&&&&&g.drawImage(icon.getImage(), 0, 0, this.getWidth(), this.getHeight(), this);
&&& static JMenuBar mb = new JMenuBar();
&&& static JMenu menu0 = new JMenu(&文件&);
&&& static JMenu menu1 = new JMenu(&编辑&);
&&& static JMenu menu2 = new JMenu(&查看&);
&&& static JMenu menu3 = new JMenu(&工具&);
&&& static JMenu menu4 = new JMenu(&帮助&);
&&& static JMenuItem mi0_1 = new JMenu(&新建&);
&&& static JMenuItem mi0_2 = new JMenu(&删除&);
&&& static JMenuItem mi0_3 = new JMenu(&重命名&);
&&& static JMenuItem mi0_4 = new JMenu(&属性&);
&&& static JMenuItem mi0_5 = new JMenuItem(&关闭&);
&&& static JMenuItem mi1_1 = new JMenu(&撤销&);
&&& static JMenuItem mi1_2 = new JMenu(&剪切&);
&&& static JMenuItem mi1_3 = new JMenu(&复制&);
&&& static JMenuItem mi1_4 = new JMenu(&粘贴&);
&&& static JMenuItem mi1_5 = new JMenu(&全选&);
&&& static JMenuItem mi2_1 = new JMenuItem(&变色&);
&&& static JMenuItem mi3_1 = new JMenu(&设置&);
&&& static JMenuItem mi3_2 = new JMenu(&选项&);
&&& static JMenuItem mi4_1 = new JMenu(&帮助主题&);
&&& static JMenuItem mi4_2 = new JMenu(&关于&);
&&& static JLabel lab = new JLabel(&我的窗体&, JLabel.CENTER);
&&& static JButton btn1 = new JButton(&连&&连&&看&);
&&& static JButton btn2 = new JButton(&俄罗斯方块&);
&&& static JButton btn3 = new JButton(&猜&&&&&&拳&);
&&& static JButton btn4 = new JButton(&猜&&&&&&数&);
&&& public static void initGUI() {
&&&&&&&&frm.setTitle(&管理员界面&);
&&&&&&&&btn1.setBounds(400, 100, 100, 30);
&&&&&&&&btn2.setBounds(550, 100, 100, 30);
&&&&&&&&btn3.setBounds(700, 100, 100, 30);
&&&&&&&&btn4.setBounds(850, 100, 100, 30);
&&&&&&&&frm.add(btn1);
&&&&&&&&frm.add(btn2);
&&&&&&&&frm.add(btn3);
&&&&&&&&frm.add(btn4);
&&&&&&&&mb.add(menu0);
&&&&&&&&mb.add(menu1);
&&&&&&&&mb.add(menu2);
&&&&&&&&mb.add(menu3);
&&&&&&&&mb.add(menu4);
&&&&&&&&menu0.add(mi0_1);
&&&&&&&&menu0.add(mi0_2);
&&&&&&&&menu0.add(mi0_3);
&&&&&&&&menu0.add(mi0_4);
&&&&&&&&menu0.add(mi0_5);
&&&&&&&&menu1.add(mi1_1);
&&&&&&&&menu1.add(mi1_2);
&&&&&&&&menu1.add(mi1_3);
&&&&&&&&menu1.add(mi1_4);
&&&&&&&&menu1.add(mi1_5);
&&&&&&&&menu2.add(mi2_1);
&&&&&&&&menu3.add(mi3_1);
&&&&&&&&menu3.add(mi3_2);
&&&&&&&&menu4.add(mi4_1);
&&&&&&&&menu4.add(mi4_2);
&&&&&&&&mi0_5.addActionListener(frm);
&&&&&&&&mi1_1.addActionListener(frm);
&&&&&&&&mi1_2.addActionListener(frm);
&&&&&&&&mi1_3.addActionListener(frm);
&&&&&&&&mi1_4.addActionListener(frm);
&&&&&&&&mi1_5.addActionListener(frm);
&&&&&&&&mi2_1.addActionListener(frm);
&&&&&&&&mi3_1.addActionListener(frm);
&&&&&&&&mi3_2.addActionListener(frm);
&&&&&&&&mi4_1.addActionListener(frm);
&&&&&&&&mi4_2.addActionListener(frm);
&&&&&&&&panel.add(lab);
//&&&&&&&&panel.setBackground(Color.yellow);
&&&&&&&&frm.getContentPane().add(panel);
&&&&&&&&frm.setSize();
&&&&&&&&frm.setJMenuBar(mb);
&&&&&&&&frm.setVisible(true);
&&&&&&&&frm.addWindowListener(new WindowAdapter() {
&&&&&&&&&&&&public void windowClosing(WindowEvent e) {
&&&&&&&&&&&&&&& System.exit(0);
&&&&&&&&&&&&}
&&&&&&&&});
&&& public static void main(String args[]) {
&&&&&&&&initGUI();
&&&&&&&&frm.setVisible(false);
&&&&&&&&frm.setBackground(Color.yellow);
&&&&&&&&frm.setVisible(true);
&&& public void actionPerformed(ActionEvent e) {
&&&&&&&&JMenuItem mi = (JMenuItem) e.getSource();
&&&&&&&&if (mi == mi0_5)
&&&&&&&&&&&&System.exit(0);
&&&&&&&&else if (mi == mi2_1) {
&&&&&&&&&&&&panel.setBackground(Color.pink);// 使窗体改变背景颜色
&&& public void windowClosing(WindowEvent e) {
&&&&&&&&frm.dispose();
&&&&&&&&System.exit(0);
等 级:新手上路
回复 3楼 linjx0123
~~非常感谢~~
等 级:新手上路
在这个代码中怎么添加背景图片
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class MainMenu implements ActionListener
&&& JFrame&&
&&& JMenuItem&&&add,update,select,delete,
&&& JMenu&&&option,
&&& JMenuBar&&
&&& MainMenu()
&&&&&&frame=new JFrame(&欢迎登录学生信息系统 &);
&&&&&&frame.setVisible(true);
&&&&&&frame.setLocation(300,200);
&&&&&&frame.setSize(400,300);
&&&&&&frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
&&&&&&add=new JMenuItem(&录入学生基本信息&);
&&&&&&update=new JMenuItem(&修改学生基本信息&);
&&&&&&select=new JMenuItem(&查询学生基本信息&);
&&&&&&delete=new JMenuItem(&删除学生基本信息&);
&&&&&&exit=new JMenuItem(&退出系统&);
&&&&&&add.addActionListener(this);
&&&&&&update.addActionListener(this);
&&&&&&select.addActionListener(this);
&&&&&&delete.addActionListener(this);
&&&&&&exit.addActionListener(this);
&&&&&&JMenu&&option=new JMenu(&选择&);
&&&&&&JMenu&&cancel=new JMenu(&退出&);
&&&&&&option.add(add);
&&&&&&option.add(update);
&&&&&&option.add(select);
&&&&&&option.add(delete);
&&&&&&cancel.add(exit);
&&&&&&JMenuBar&&bar=new JMenuBar();
&&&&&&bar.add(option);
&&&&&&bar.add(cancel);
&&&&&&frame.setJMenuBar(bar);
&&& public void actionPerformed(ActionEvent e)
&&&&&&&&if(e.getSource()==add)
&&&&&&&&{&&&
&&&&&&&&&&&&new&&AddWindow();
&&&&&&&&&&&&frame.setVisible(false);
&&&&&&&&if(e.getSource()==delete)
&&&&&&&&{&&&
&&&&&&&&&&&&new&&DeleteWindow();
&&&&&&&&&&&&frame.setVisible(false);
&&&&&&&&if(e.getSource()==exit)
&&&&&&&&&&&&System.exit(0);
&&&&&&&&public static void main(String args[])
&&&&&&&&&&&&new MainMenu();
版权所有,并保留所有权利。
Powered by , Processed in 0.029611 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights Reserved}

我要回帖

更多关于 java设置窗体大小 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信