| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7047 人关注过本帖
标题:JPanel中什么方法可以设置背景图片
只看楼主 加入收藏
JavaBean
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2005-9-30
收藏
 问题点数:0 回复次数:3 
JPanel中什么方法可以设置背景图片
JPanel中什么方法可以设置背景图片
搜索更多相关主题的帖子: JPanel 
2005-10-14 20:49
lcm
Rank: 4
等 级:贵宾
威 望:13
帖 子:140
专家分:0
注 册:2005-2-4
收藏
得分:0 
//转载


[CODE]   
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Test
{

    private JFrame frame = new JFrame("背景图片测试");
   
    private JPanel imagePanel ;
   
    private ImageIcon background;
   
    public static void main(String[] args)
    {
        new Test();
    }
   
    public Test()
    {
        background = new ImageIcon("1.jpg");//背景图片
        JLabel label = new JLabel(background);//把背景图片显示在一个标签里面
 //     把标签的大小位置设置为图片刚好填充整个面板
        label.setBounds(0,0,background.getIconWidth(),background.getIconHeight());
 //     把内容窗格转化为JPanel,否则不能用方法setOpaque()来使内容窗格透明      
        imagePanel = (JPanel)frame.getContentPane();
        imagePanel.setOpaque(false);
 //     内容窗格默认的布局管理器为BorderLayout
        imagePanel.setLayout(new FlowLayout());
        imagePanel.add(new JButton("测试按钮"));
        
        frame.getLayeredPane().setLayout(null);
 //     把背景图片添加到分层窗格的最底层作为背景      
        frame.getLayeredPane().add(label,new Integer(Integer.MIN_VALUE));   
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(background.getIconWidth(),background.getIconHeight());
        frame.setVisible(true);
    }
}

[/CODE]

从 小 事 做 起,脚 踏 实 地 ~
2005-10-15 00:03
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
// 这个帖子明明回复过了,怎么过几个小时再看就没有了呢?
// 是不是论坛出现数据丢失现象了, 让人心寒
// 还有wind2005 的那个JTable 的问题也回复了,现在再让我写一遍,可是没有耐心了。

[CODE]
import java.awt.*;
import javax.swing.*;


class MyImagePanel extends JPanel
{
  private static Image img;

  public MyImagePanel()
  {
    setBackground(Color.white);
    setPreferredSize(new Dimension(500, 300));
    img = getToolkit().getImage(ImageAsBackgroundDemo.class.getResource("Blue hills.jpg"));  
  }
 
  private void paintMyImage(Graphics g)
  {
    Graphics2D g2 = (Graphics2D) g;
    int width = getWidth();
    int height = getHeight();
   
    if(img != null)
      g2.drawImage(img, 0, 0, width, height, this);
  }

  private void drawMyString(Graphics g)
  {
    Graphics2D g2 = (Graphics2D) g;
    g2.setColor(Color.red);
    String fontName = "Serif";
    int fontStyle = Font.BOLD;
    int fontSize = getWidth()/10;
    Font f = new Font(fontName, fontStyle, fontSize);
    g2.setFont(f);
   
    String greeting = "Hello, I am Kai.";
   
    int widthOfGreeting = g.getFontMetrics().stringWidth(greeting);
    int widthOfPanel = getWidth();
    int heightOfPanel = getHeight();
    int x = (widthOfPanel - widthOfGreeting)/2;
    int y = heightOfPanel/4;
    g2.drawString(greeting, x, y);
  }  
  public void paintComponent(Graphics g)
  {
    super.paintComponent(g);
    paintMyImage(g);   
    drawMyString(g);
  }
  
}

public class ImageAsBackgroundDemo extends JFrame
{
  public ImageAsBackgroundDemo()
  {
    super("ImageAsBackgroundDemo");
   
    //create my JPanel object
    MyImagePanel myImagePanel = new MyImagePanel();

    setContentPane(myImagePanel);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    pack();
    setLocationRelativeTo(null);
    setVisible(true);   
  }
  public static void main(String [] args)
  {
    new ImageAsBackgroundDemo();
  }
}
[/CODE]

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-10-15 09:07
伴我同行
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2005-9-13
收藏
得分:0 
会出现这种情况吗?

1.可悲的是生命不会重来; 2.可喜的是生命不需要重来。
2005-10-15 14:33
快速回复:JPanel中什么方法可以设置背景图片
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017165 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved