好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

java实现带有背景图片的窗体

本文实例为大家分享了java实现带有背景图片的窗体,供大家参考,具体内容如下

将背景图片添加到面板再添加到窗体

将背景图片添加到面板上

可设置背景图片的画板

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

//创建一个类继承画板类

public class MyJPanel extends JPanel{

  //构造方法初始化背景图片

  private Image image;

  public MyJPanel(Image image){

  this .image = image;

  }

  //重写paintComponent方法

  @Override

  public void paintComponent(Graphics g) {

  //调用父类paintComponent方法绘制其他组件

  super .paintComponent(g);

  //绘制背景图片,大小为窗体大小

  g.drawImage(image, 0 , 0 ,getWidth(),getHeight(), null );

  }

  }

测试

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

import javax.swing.*;

import java.awt.*;

 

//测试类

public class Demo1 {

  //创建窗体

  private JFrame myJFrame = new JFrame( "有背景图片" );

  public Demo1(){

  //获取图片

  Image im = new ImageIcon( "forGame\\src\\resource\\主题背景.jpg" ).getImage();

  //设置窗体大小

  myJFrame.setSize( 889 , 500 );

  //获取设置背景后的面板

  MyJPanel myJPanel = new MyJPanel(im);

  //添加按钮测试

  myJPanel.add( new JButton( "hello" ));

  myJPanel.add( new JButton( "hello1" ));

  myJFrame.add(myJPanel);

  myJFrame.setLocationRelativeTo( null );

  myJFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  myJFrame.setVisible( true );

  }

 

  public static void main(String[] args) {

  new Demo1();

  }

}

效果图

将背景图片添加到窗体

分层添加

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

import javax.swing.*;

 

public class MyJFrame extends JFrame {

 

  public MyJFrame () {

  //创建一个JLayeredPane用于分层的。

  JLayeredPane layeredPane= new JLayeredPane();

  //获取图片

  ImageIcon image= new ImageIcon( "forGame\\src\\resource\\主题背景.jpg" );

  //JLabel用于存放背景图片,作为背景添加到JPanel上

  JLabel jl= new JLabel(image);

  //创建JPanel,并将JLabel添加

  JPanel jp= new JPanel();

  //设置JPanel大小为背景图片大小

  jp.setBounds( 0 , 0 ,image.getIconWidth(),image.getIconHeight());

  jp.add(jl);

 

  //创建测试按钮

  JButton jb1= new JButton( "hello" );

  jb1.setBounds( 100 , 100 , 100 , 100 );

  JButton jb2= new JButton( "hello1" );

  jb2.setBounds( 500 , 100 , 100 , 100 );

 

  //将jp放到JLayeredPane的最底层

  layeredPane.add(jp,JLayeredPane.DEFAULT_LAYER);

  //将jb放到jp高一层的地方

  layeredPane.add(jb1,JLayeredPane.MODAL_LAYER);

  layeredPane.add(jb2,JLayeredPane.MODAL_LAYER);

 

  //设置窗体

  this .setLayeredPane(layeredPane);

  this .setSize(image.getIconWidth(),image.getIconHeight());

  this .setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  this .setVisible( true );

  }

  public static void main(String[] args) {

  new MyJFrame ();

  }

}

效果图

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

原文链接:https://blog.csdn.net/weixin_46085748/article/details/113091839

查看更多关于java实现带有背景图片的窗体的详细内容...

  阅读:19次