您的位置:首页 > 其它

swing设置背景图片和按钮

2017-11-23 22:52 381 查看
public class ImageFrame extends JFrame{

Dimension frameSize = new Dimension(1000, 600);
ImageIcon imageIcon = new ImageIcon(this.getClass().getResource("/game/img/startGame.jpg"));

public ImageFrame(String title) {
// 设置窗体属性
setSize(frameSize);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setIconImage(imageIcon.getImage());
}

public void addImageByJLable() {
setLayout(null);
// 设置背景
JLabel lbBg = new JLabel(imageIcon);
lbBg.setBounds(0, 0, frameSize.width, frameSize.height);
getContentPane().add(lbBg);
addComponents();
setVisible(true);
}

public void addImageByRepaint() {
ImagePanel imagePanel = new ImagePanel(frameSize, imageIcon.getImage());
setContentPane(imagePanel);
addComponents();
setVisible(true);
}

class ImagePanel extends JPanel {
Dimension dimension;
Image image;

public ImagePanel(Dimension dimension, Image image) {
super();
this.dimension = dimension;
this.image = image;
}

@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, 0, 0, dimension.width, dimension.height, this);
repaint();
}
}

private void addComponents() {
JButton btn1 = new JButton("新游戏");
JButton btn2 = new JButton("排行榜");
JButton btn3 = new JButton("退出游戏");
btn1.setBounds(500, 500, 100, 50);
btn2.setBounds(400, 300, 100, 50);
btn3.setBounds(400, 400, 100, 50);
this.getContentPane().add(btn1);
this.getContentPane().add(btn2);
this.getContentPane().add(btn3);
}

public static void main(String[] args) {
ImageFrame imageFrame = new ImageFrame("AAA");
imageFrame.addImageByJLable();
//        imageFrame.addImageByRepaint();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: