JavaGUI——背景图片设置
程序员文章站
2022-05-31 09:05:44
...
设置思路:
创建一个ImageIcon图片对象->把图片放入label中->把定义好的图片面板设置为容器面板->把图片面板设为不可视并且布局设为流动布局->把LayeredPane的布局置空->把label添加到LayeredPane的最底层
(现在看不懂没关系,这是设置背景图片的大概流程,帮助理解的,自己按照流程练习三遍就会了)
案例展示:
案例代码:
import java.awt.*;
import javax.swing.*;
public class Background_1 extends JFrame{
ImageIcon background;
JPanel myPanel;
JLabel label;
JButton button;
public static void main(String[] args) {
// TODO Auto-generated method stub
new Background_1();
}
Background_1()
{
button = new JButton("一个按钮"); //创建一个按钮
background = new ImageIcon("image/java.png"); //创建一个背景图片
label = new JLabel(background); //把背景图片添加到标签里
label.setBounds(0, 0, background.getIconWidth(), background.getIconHeight()); //把标签设置为和图片等高等宽
myPanel = (JPanel)this.getContentPane(); //把我的面板设置为内容面板
myPanel.setOpaque(false); //把我的面板设置为不可视
myPanel.setLayout(new FlowLayout()); //把我的面板设置为流动布局
this.getLayeredPane().setLayout(null); //把分层面板的布局置空
myPanel.add(button); //把按钮添加到我的面板里
this.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE)); //把标签添加到分层面板的最底层
//设置界面属性
this.setTitle("My Project");
this.setBounds(300, 300, background.getIconWidth(), background.getIconHeight());
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
帮助理解:
- 之所以把图片放到标签里,再把标签放到LayeredPane的最底层,是因为标签是一个可以添加图片的组件,而图片本身不是组件。
- 定义的“我的面板”设置成不可视后,只是面板不可视,但是其内容扔可以看到,所以不必担心内容看不见。
- 可以在定义的“我的面板”上放组件或者绘制图形。
欢迎各位在评论区留言探讨~
上一篇: 中医针灸养生 针灸时七大禁忌要牢记
下一篇: 三阴交穴拔罐调补精血
推荐阅读
-
apache2.4.6的httpd.conf设置问题
-
本人已接近奔溃,求各位解答下mamp环境下连接数据库和系统设置的几个小问题,不甚感激
-
php 设置 session详解(过期,失效,有效期)_PHP教程
-
php-Finecms用同一个IP不同端口设置多网站的问题
-
PHP file_get_contents设置超时处理方法
-
IE下table设置高度100%却无效的情况_html/css_WEB-ITnose
-
ckeditor粘入word内容如何默认设置为保留样式
-
Zend studio文件注释模板设置方法_PHP
-
如何解决子div设置float后会导致父div无法自动撑开的问题
-
(ZZ)phpMyAdmin设置mysql存储过程及其有关问题