读书人

替JFrame以及JTextArea添加背景图片

发布时间: 2012-09-16 17:33:16 作者: rapoo

为JFrame以及JTextArea添加背景图片
给jframe添加(在jpanel中添加实现):

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);    }}


在jtextArea中添加图片背景:
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);      {        setOpaque(false);      } // instance initializer      public void paint(Graphics g) {        g.drawImage(imageIcon.getImage(), 0, 0, this);        super.paint(g);      }    };

修改成这样就可以显示全彩

转:http://blog.chinaunix.net/space.php?uid=9195812&do=blog&id=2006417

读书人网 >编程

热点推荐