六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 111|回复: 0

java中给窗体加上背景图片

[复制链接]

升级  15.33%

19

主题

19

主题

19

主题

秀才

Rank: 2

积分
73
 楼主| 发表于 2013-2-7 19:08:59 | 显示全部楼层 |阅读模式
import java.awt.event.*;import javax.swing.*;import java.awt.*; public class BackgroundImage extends JFrame{    JScrollPane scrollPane;    ImageIcon icon;    Image image;     public BackgroundImage()    {        icon = new ImageIcon("bgpanel.jpg");         JPanel panel = new JPanel()        {            protected void paintComponent(Graphics g)            {                // Dispaly image at at full size                g.drawImage(icon.getImage(), 0, 0, null);                 // Scale image to size of component//                Dimension d = getSize();//                g.drawImage(icon.getImage(), 0, 0, d.width, d.height, null);                 // Fix the image position in the scroll pane//                Point p = scrollPane.getViewport().getViewPosition();//                g.drawImage(icon.getImage(), p.x, p.y, null);                 super.paintComponent(g);            }        };        panel.setOpaque( false );        panel.setPreferredSize( new Dimension(400, 400) );        scrollPane = new JScrollPane( panel );        getContentPane().add( scrollPane );         JButton button = new JButton( "Hello" );        panel.add( button );    }     public static void main(String [] args)    {        BackgroundImage frame = new BackgroundImage();        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        frame.setSize(300, 300);        frame.setLocationRelativeTo( null );        frame.setVisible(true);    }}

import java.awt.BorderLayout;import java.awt.Container;import java.awt.Graphics;import java.awt.Image;import javax.swing.GrayFilter;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTextArea;public class BackgroundSample {  public static void main(String args[]) {    JFrame frame = new JFrame("Background Example");    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    final ImageIcon imageIcon = new ImageIcon("parking6.gif");    JTextArea textArea = new JTextArea() {      Image image = imageIcon.getImage();      Image grayImage = GrayFilter.createDisabledImage(image);      {        setOpaque(false);      } // instance initializer      public void paint(Graphics g) {        g.drawImage(grayImage, 0, 0, this);        super.paint(g);      }    };    JScrollPane scrollPane = new JScrollPane(textArea);    Container content = frame.getContentPane();    content.add(scrollPane, BorderLayout.CENTER);    frame.setSize(250, 250);    frame.setVisible(true);  }}


只不过好像不能很好显示色彩,不知道为什么?在研究中....

哦知道了,      
Image grayImage = GrayFilter.createDisabledImage(image);这里过滤了。 // Image grayImage = GrayFilter.createDisabledImage(image);      {        setOpaque(false);      } // instance initializer      public void paint(Graphics g) {        g.drawImage(imageIcon.getImage(), 0, 0, this);        super.paint(g);      }    };
修改成这样就可以显示全彩:



转自:http://blog.chinaunix.net/u/21684/showart_258857.html
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表