java中JFrame去掉邊框設定背景
阿新 • • 發佈:2019-02-09
在這裡主要通過繼承JPanel來定義一個backgoundPanel類,將其新增到JFrame中,來給他設定背景,這樣做的好處是我們還可以在上面繼續新增其他元件,如下(BackgruondPanel):
main類:public class BackgruondPanel extends JPanel{ private ImageIcon pic; private Image image; private int width; private int height; public BackgruondPanel(String imgUrl) { pic = new ImageIcon(imgUrl); image = pic.getImage(); width = pic.getIconWidth(); height = pic.getIconHeight(); this.setSize(width, height); } @Override public void paint(Graphics arg0) { super.paint(arg0); arg0.drawImage(image, 0, 0, width, height,null); } //獲取作為背景圖片的寬度 public int getdefaultWidth(){ return width; } //獲取作為背景圖片的高度 public int getdefaultHeight(){ return height; } }
public class Main { public static void main(String[] args) { initView(); } public static void initView(){ String url = "img\\main_background.gif"; JFrame frame = new JFrame(); BackgruondPanel bgpanel = new BackgruondPanel(url); frame.add(bgpanel); frame.setBounds(30, 30, bgpanel.getdefaultWidth(), bgpanel.getdefaultHeight()); //設定去掉邊框 frame.setUndecorated(true); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }