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项目控制台中文乱码
