Swing如何给窗体添加背景图片
下面两个类用来给窗体添加背景图片,第一个类构造方法参数是你需要放置的顶层面板,第二个类继承了可以直接获取容器
package util; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import javax.swing.JLayeredPane; import javax.swing.JPanel; import javax.swing.JSplitPane; /** * 背景面板 * @author 高明 * */ public class LayeredPanel extends JLayeredPane { /** * 构造方法 * @param str --图片路径 * @param panel --组件面板 */ public LayeredPanel(String str,JPanel panel) { BackGround b = new BackGround(str); add(b, new Integer(0)); // 添加背景,层数为0 panel.setOpaque(false); // 将panel设为透明状态 add(panel, new Integer(1)); // 将panel设为0层 addComponentListener(new ComponentAdapter() { public void componentResized(ComponentEvent e) { b.setSize(getWidth(), getHeight()); panel.setSize(getWidth(), getHeight()); } }); } public LayeredPanel(String str,JSplitPane panel) { BackGround b = new BackGround(str); add(b, new Integer(0)); // 添加背景,层数为0 panel.setOpaque(false); // 将panel设为透明状态 add(panel, new Integer(1)); // 将panel设为0层 addComponentListener(new ComponentAdapter() { public void componentResized(ComponentEvent e) { b.setSize(getWidth(), getHeight()); panel.setSize(getWidth(), getHeight()); } }); } }
package util;
import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent;
import javax.swing.JFrame; import javax.swing.JLayeredPane; /** * 带背景的窗体 * @author 高明 * */ public class LayeredFrame extends JFrame { public LayeredFrame() { setBounds(300, 200, 600, 400); add(new JLayeredPane()); BackGround b = new BackGround(); getLayeredPane().add(b); addComponentListener(new ComponentAdapter() { @Override public void componentResized(ComponentEvent e) { b.setSize(getWidth(),getHeight()); } }); } }
在参考了以下两篇文章才学会这个类的写法,非常感谢他们的帮助
上一篇:
IDEA上Java项目控制台中文乱码