Java Swing中两种设置背景图(容器图片)

在java swing中需要为容器添加图片,或者背景图片。

提供两种简单的解决方案,一种利用JPanel,另一种利用JLabel

1.JPanel(源代码)

[java] view
plain
copy

  1. package oo;  
  2.   
  3. import java.awt.Graphics;  
  4. import java.awt.Image;  
  5. import java.io.File;  
  6.   
  7. import javax.swing.ImageIcon;  
  8. import javax.swing.JFrame;  
  9. import javax.swing.JPanel;  
  10.   
  11. public class Drawing {  
  12.   
  13.     JFrame jframe = new JFrame();  
  14.     public static JPanel GImage = null;  
  15.   
  16.     public Drawing() {  
  17.         initFrame();  
  18.     }  
  19.   
  20.     // 初始化窗口  
  21.     public void initFrame() {  
  22.         // 利用JPanel添加背景图片  
  23.   
  24.         GImage = new JPanel() {  
  25.   
  26.             protected void paintComponent(Graphics g) {  
  27.                 ImageIcon icon = new ImageIcon("image\\benbenla.jpg");  
  28.                 Image img = icon.getImage();  
  29.                 g.drawImage(img, 0, 0, icon.getIconWidth(),  
  30.                         icon.getIconHeight(), icon.getImageObserver());  
  31.                 jframe.setSize(icon.getIconWidth(), icon.getIconHeight());  
  32.   
  33.             }  
  34.   
  35.         };  
  36.         jframe.setTitle("测试背景图片");  
  37.         jframe.add(GImage);  
  38.         jframe.pack();  
  39.         jframe.setVisible(true);  
  40.         jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  41.   
  42.     }  
  43.   
  44.     public static void main(String[] args) {  
  45.         new Drawing();  
  46.   
  47.     }  
  48.   
  49. }  

2.JLabel源代码

[java] view
plain
copy

  1. package swing.draw;  
  2.   
  3. import java.awt.Image;  
  4.   
  5. import javax.swing.ImageIcon;  
  6. import javax.swing.JFrame;  
  7. import javax.swing.JLabel;  
  8.   
  9. /** 利用JLabel来构建图片 */  
  10.   
  11. public class Drawing2 {  
  12.     JLabel jlpic = new JLabel();  
  13.     JFrame jframe = new JFrame();  
  14.   
  15.     public Drawing2() {  
  16.   
  17.         init1Frame();  
  18.     }  
  19.   
  20.     public void init1Frame() {  
  21.         ImageIcon icon = new ImageIcon("image\\benbenla.jpg");  
  22.         icon.setImage(icon.getImage().getScaledInstance(icon.getIconWidth(),  
  23.                 icon.getIconHeight(), Image.SCALE_DEFAULT));  
  24.         System.out.println(icon.getIconHeight() + "" + icon.getIconWidth());  
  25.         jlpic.setBounds(0, 0, 1366, 768);  
  26.         jlpic.setHorizontalAlignment(0);  
  27.         jlpic.setIcon(icon);  
  28.         jframe.setSize(1366, 768);  
  29.         jframe.add(jlpic);  
  30.         jframe.pack();  
  31.         jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  32.         jframe.setVisible(true);  
  33.   
  34.     }  
  35.   
  36.     public static void main(String args[]) {  
  37.   
  38.         new Drawing2();  
  39.     }  
  40. }  

添加控件:

 jlpic.setIcon(icon);
        Container c = new Container();
        JLabel user = new JLabel("用户:");
        JLabel password = new JLabel("密码:");
        JTextField txf_userName = new JTextField();
        JPasswordField pwd_password = new JPasswordField()
        {
        	public void paste(){
        		 UIManager.getLookAndFeel().provideErrorFeedback(this);
        	}
        };
        user.setBounds(200,25,50,25);
        password.setBounds(200,52,50,25);
        txf_userName.setBounds(300,25,150,25);
        pwd_password.setBounds(300,52,150,25);
        c.add(user);
        c.add(txf_userName);
        c.add(password);
        c.add(pwd_password);
        c.add(jlpic);
        jframe.setSize(1366, 768);
       // jframe.add();
        jframe.add(c);
时间: 2024-08-03 12:19:50

Java Swing中两种设置背景图(容器图片)的相关文章

在用java swing 时遇到关于设置背景图片的问题

问题描述 在用java swing 时遇到关于设置背景图片的问题 public class LoginPanel extends JPanel { protected ImageIcon icon;//protected的访问权限是同一个包的类即可访问它 public int width,height; public LoginPanel(){ super();//调用父类的构造方法,此处可以不显示调用,系统会自动隐式调用 icon=new ImageIcon("res/login.jpg&qu

浅析Java语言中两种异常的差别

Java提供了两类主要的异常:runtime exception和checked exception.所有的checked exception是从java.lang.Exception类衍生出来的,而runtime exception则是从java.lang.RuntimeException或java.lang.Error类衍生出来的. 它们的不同之处表现在两方面:机制上和逻辑上. 一.机制上 它们在机制上的不同表现在两点:1.如何定义方法;2. 如何处理抛出的异常.请看下面CheckedExc

关于Java Swing中的repaint()方法及setVisible()的问题

问题描述 关于Java Swing中的repaint()方法及setVisible()的问题 我写了一个JFrame, 加了一个JComponent,进行一些处理后使用removeAll()移除了JComponent中的所有组件,然后调用add(JPanel)添加了一个新的组件,最后调用repaint()方法显示这个JPanel 这时发现JPanel无法显示,但调整窗口大小后就能显示 因为调整窗口大小不是会自动调用repaint()方法吗?但是我自己调用了啊为什么不会显示嘞. 接下来, 我在re

java swing中如何为一个窗体添加背景图片

问题描述 java swing中如何为一个窗体添加背景图片 java swing中如何为一个窗体添加背景图片,java swing中如何为一个窗体添加背景图片 解决方案 http://blog.csdn.net/caixiexin/article/details/6608919 解决方案二: 在JFrame中添加JPanel面板,然后就可以设置了.

实用技巧:PHP中调用Java类的两种方法

Java语言功能强大,因此在许多情况下在php中来调用Java的功能将十分有用.在php中调用Java语言有两种方法,一种是使用php中的Java扩展模块,另一种是使用minij2ee应用服务器提供的SJOP协议实现.下面我们来比较一下这两种方法各自的特点. 1.php的Java模块 php发布版中包含一个Java扩展模块,可以用来调用Java对象,例如: <?php$system=new Java("java.lang.System");print "Java ver

java swing中怎么让面板的背景图片缩放

问题描述 java swing中怎么让面板的背景图片缩放 public void paintComponent(Graphics g){ Graphics2D g2 = (Graphics2D) g; super.paintComponent(g2); //背景图片 int x=0,y=0; java.net.URL imgURL=getClass().getResource("t0156b516cea6edd501.jpg"); ImageIcon icon=new ImageIco

按钮-自己参照书本写了一个Java Swing中的容器类入门程序设计,但是运行结果不对,求大神帮帮忙!

问题描述 自己参照书本写了一个Java Swing中的容器类入门程序设计,但是运行结果不对,求大神帮帮忙! /*题目是这样的:创建一个窗体在其中摆放两个内容面板对两个面板进行边框个性化设置.初始状态为第二个面板不可见,当单击第一个面板中的"打开"按钮时,第二个面板即可见:当单击第一个面板中的"关闭"按钮时,第二个面板消失. 以下是我结合书本写的代码,不知道为什么运行不了???*/import javax.swing.*;import java.awt.*;impor

jsp页面中两种方法显示当前时间的简单实例_JSP编程

在jsp页面实现显示当前的日期时间,我们可以用一下两种方式实现: 1. 通过在jsp页面添加Java代码实现,主要代码如下所示 java.text.SimpleDateFormat simpleDateFormat = new java.text.SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); java.util.Date currentTime = new java.util.Date(); String time = simpleDateForm

PHP调用java类的两种方法

Java语言功能强大,因此在许多情况下在php中来调用Java的功能将十分有用.在php中调用Java语言有两种方法,一种是使用php中的Java扩展模块,另一种是使用minij2ee应用服务器提供的SJOP协议实现.下面我们来比较一下这两种方法各自的特点.1.php的Java模块php发布版中包含一个Java扩展模块,可以用来调用Java对象,例如:<?php$system=new Java("java.lang.System");print "Java versio