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, 00, 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(001366768);  
  26.         jlpic.setHorizontalAlignment(0);  
  27.         jlpic.setIcon(icon);  
  28.         jframe.setSize(1366768);  
  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);


相关文章
|
2月前
|
Java 虚拟化 容器
(Java)Java里JFrame窗体的基本操作(容器布局篇-1)
容器 容器,我的理解是可以包容其他东西的玩意。它可以是一个盒子,可以是一个虚拟化的物品,可只要能包裹住其他存在质体的东西,那么都可以称作是容器。例如:JPanel组件和JScollPane组件两者都是容器也是组件。 既然有容器,那么容器中的布局就必不可少了。不然不规矩的摆放物品,人类看不习惯,我也看不习惯 ???? 本篇内容,将说明java JFrame窗体里容器中几类布局。 说明:所有在JFrame窗体里的容器布局都会使用setLayout()方法,采用的布局参数都将放进这个方法里 绝对布局 调用窗体容器
122 2
|
6月前
|
存储 缓存 安全
Java 集合容器常见面试题及详细解析
本文全面解析Java集合框架,涵盖基础概念、常见接口与类的特点及区别、底层数据结构、线程安全等内容。通过实例讲解List(如ArrayList、LinkedList)、Set(如HashSet、TreeSet)、Map(如HashMap、TreeMap)等核心组件,帮助读者深入理解集合容器的使用场景与性能优化。适合准备面试或提升开发技能的开发者阅读。
121 0
|
8月前
|
前端开发 JavaScript Java
Java中将图片转换为base64格式的技巧
这样,你就可以在Java中将图片转换为Base64格式了。这个方法的实现非常简单,只需要使用Java的内置库,无需任何额外的库。希望这个方法对你有所帮助。
507 22
|
6月前
|
缓存 Java API
Java 集合容器实操技巧与案例详解
本教程基于Java 8+新特性和现代开发实践,深入讲解Java集合容器的实操技巧。通过具体场景演示Stream API数据处理、ConcurrentHashMap并发控制、LinkedHashMap实现LRU缓存、TreeSet自定义排序等高级特性。同时涵盖computeIfAbsent优化操作、EnumMap专用集合使用、集合统计与运算(交集、并集、差集)等内容。代码示例丰富,助力掌握高效编程方法。[点击获取完整代码](https://pan.quark.cn/s/14fcf913bae6)。
89 0
|
10月前
|
存储 安全 算法
Java容器及其常用方法汇总
Java Collections框架提供了丰富的接口和实现类,用于管理和操作集合数据。
196 2
Java容器及其常用方法汇总
|
10月前
|
存储 IDE Java
java设置栈内存大小
在Java应用中合理设置栈内存大小是确保程序稳定性和性能的重要措施。通过JVM参数 `-Xss`,可以灵活调整栈内存大小,以适应不同的应用场景。本文介绍了设置栈内存大小的方法、应用场景和注意事项,希望能帮助开发者更好地管理Java应用的内存资源。
534 4
|
10月前
|
数据采集 算法 Java
如何在Java爬虫中设置动态延迟以避免API限制
如何在Java爬虫中设置动态延迟以避免API限制
|
11月前
|
Java Linux iOS开发
如何配置 Java 环境变量:设置 JAVA_HOME 和 PATH
本文详细介绍如何在Windows和Linux/macOS系统上配置Java环境变量。
13491 12
|
11月前
|
监控 Java 中间件
8G的容器Java堆才4G怎么就OOM了?
本文记录最近一例Java应用OOM问题的排查过程,希望可以给遇到类似问题的同学提供参考。
|
12月前
|
存储 IDE Java
漂亮不是梦!Java Swing美化攻略
Java Swing 是一个为 Java 设计的 GUI 工具包,提供文本框、按钮等组件。尽管其外观可定制,通过 Look and Feel(LAF)机制改变应用风格,如 Darcula 和 FlatLaf,但现已淡出主流视野,主要应用于 IDE 领域,如 IntelliJ IDEA 和 Eclipse。相比其他 GUI 框架,Swing 的发展前景有限。
487 1