怎么在Java里添加背景图片

怎么在Java里添加背景图片,第1张

可以新建个面板,在面板里放入带图片的JLabel,填满面板即可。

JPanel jp = new JPanel()//新建面板

jp.setLayout(new FlowLayout()) //设置面板布局

ImageIcon ii=new ImageIcon(getClass().getResource("/Picture/i.jpg"))

JLabel uppicture=new JLabel(ii)//往面板里加入JLabel

this.setVisible(true)

不知道你怎么加的。加背景图有很多种办法:

- 加一个 JLabel,然后在 JLabel 上添加图片;

- 直接重写 paint 方法,然后用 drawImage(Image src, int x, int y, int width, int height) 方法画上去。

最大化的时候实际上是触发了窗口事件,添加窗口监听器,然后重写 windowResized() 方法,一旦窗口改变大小就重新计算尺寸,并调用 repaint 方法重绘。

================================= 给你一个例子 =================================

import javax.swing.JFileChooser

import javax.swing.JFrame

import javax.swing.JPanel

import javax.swing.JButton

import javax.swing.filechooser.FileNameExtensionFilter

import java.awt.Graphics

import java.awt.Toolkit

import java.awt.Image

import java.awt.event.WindowEvent

class BackgroundPanel extends JPanel {

private Toolkit tk = Toolkit.getDefaultToolkit()

private Image backgroundImage

private JButton btnExit = new JButton("Exit")

public BackgroundPanel (String imgFile) {

backgroundImage = tk.createImage(imgFile)

setLayout(null)

btnExit.setBounds(10, 10, 100, 25)

add(btnExit)

}

@Override public void paint (Graphics g) {

g.drawImage(backgroundImage, 0, 0, getWidth(), getHeight(), this)

paintComponents(g)

}

}

class DemoFrame extends JFrame {

public DemoFrame () {

super("Demo")

String fileName = null

JFileChooser fileChooser = new JFileChooser()

fileChooser.setDialogTitle("请选择一张背景图片")

fileChooser.setFileFilter(new FileNameExtensionFilter("图片文件(*.bmp, *.gif, *.jpg, *.jpeg, *.png)", "bmp", "gif", "jpg", "jpeg", "png"))

if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {

fileName = fileChooser.getSelectedFile().getAbsolutePath()

if (fileName == null)

return

} else

return

setDefaultCloseOperation(EXIT_ON_CLOSE)

setSize(800, 600)

setLocationRelativeTo(null)

setContentPane(new BackgroundPanel(fileName))

setVisible(true)

}

}

public class Demo {

public static void main (String args[]) {

new DemoFrame()

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11239981.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存