JFrame放置背景图片
来源:互联网 发布:魔兽世界 70数据库 编辑:程序博客网 时间:2024/05/17 00:16
为了给JFrame放置背景图片可以使用JLayeredPane,这是一个分层的面板,它一共分了七层,我们在这里只需要使用其中的两层就可以实现放置背景图片,下面一层放背景图片,上面一层放控件,另外需要注意的是,使用了JLayeredPane之后只能使用控件的setBounds()方法来设置大小和位置,如果不设置的话,将不会显示出来加进去的控件,代码如下:
LayeredFrame.java
package swing;import java.awt.BorderLayout;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JLayeredPane;import javax.swing.JPanel;import javax.swing.JTextField;public class LayeredFrame extends JFrame{ /** * 分层panel */ private JLayeredPane layeredPane; /** * 放置背景图片的panel * 放置在下层 */ private JPanel backPane; /** * 组件放置在上层 */ private JButton button; /** * 组件放置在上层 */ private JTextField text; /** * 放置内容的面板 */ private JPanel componentPane; /** * 放置图片的label */ private JLabel labelImage; public LayeredFrame() { // 获取图片 ImageIcon imageIcon= new ImageIcon("resource\\swing.png"); layeredPane = new JLayeredPane(); //设置JFrame的JLayeredPane this.setLayeredPane(layeredPane); labelImage = new JLabel(imageIcon); backPane = new JPanel(); backPane.add(labelImage); //将内容面板加入JLayeredPane最下层 layeredPane.add(backPane, JLayeredPane.DEFAULT_LAYER); //JLayeredPane中只能使用setBounds放置设置位置,没有LayoutManager backPane.setBounds(0, 0, imageIcon.getIconWidth(), imageIcon.getIconHeight()); labelImage.setBounds(0, 0, imageIcon.getIconWidth(), imageIcon.getIconHeight()); componentPane = new JPanel(); //为componentpanel设置布局管理器 componentPane.setLayout(new BorderLayout()); //将componentPanel加入JLayeredPane中上面一层 layeredPane.add(componentPane, JLayeredPane.MODAL_LAYER); //使用setBounds为componentPane设置位置和大小 componentPane.setBounds(20, 20, 300, 100); text = new JTextField(); componentPane.add(text, BorderLayout.NORTH); button = new JButton("text"); componentPane.add(button, BorderLayout.SOUTH); //setOpaque()方法设置为false,那么没有添加组件的地方将不会绘制出来 //会显示下面一层的内容 componentPane.setOpaque(false); this.setSize(imageIcon.getIconWidth(), imageIcon.getIconHeight()); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setVisible(true); } public static void main(String[] args) { new LayeredFrame(); }}
效果如下:
0 0
- JFrame放置背景图片
- JFrame 设置背景图片方法
- JFrame中设置背景图片
- jframe添加背景图片
- JFrame设置背景图片
- JFrame如何设置背景图片
- 设置JFrame的背景图片
- JFrame中设置背景图片
- JFrame如何设置背景图片
- Java - JFrame 设置背景图片
- jFrame背景图片设置
- JFrame设置背景图片
- 给JFrame上添加背景图片
- Java为JFrame添加背景图片
- [Java]JFrame如何设置背景图片
- 为jframe窗口设置背景图片
- 在JFrame上添加背景图片
- JFrame设置背景图片的方法
- BZOJ 3275: Number|网络流
- [Apache Kafka]开发producer
- MyEclipse中没有支持tomcat7.x时候怎么使用Tomcat7
- maven常用命令和网址
- 单链表中是否有环(长度和连接点)
- JFrame放置背景图片
- LeetCode12. Integer to Roman
- cvpr2014显著性相关论文
- uva 297 四分树
- Android学习笔记之AppWidget
- iOS 开发学习之 User Interface(6)UITextField 与 UIImageView
- op08-bash scripts config files
- Hive UDF教程(一)
- 算法-蓝桥杯习题(4-1)