怎么在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()

}

}

这是我以前的一个小代码你可以看看

public class demo_9 extends JFrame {

JSplitPane jsp = null

JList jlist

JLabel jlabel

public static void main(String[] args) {

demo_9 a = new demo_9()

}

public demo_9(){

String []words ={"boy","girl"}

JList jlist = new JList(words)

jlabel = new JLabel(new ImageIcon("Image//真三.gif")) //这里就是引入图片了

//拆分窗格

jsp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jlist,jlabel)

jsp.setDividerLocation(70)

//设置可以伸缩

jsp.setOneTouchExpandable(true)

this.add(jsp)

this.setTitle("test")

this.setSize(400,300)

this.setLocation(400,200)

this.setVisible(true)

}

}

步骤:首先先在project里新建个文件夹(Folder),然后把你要插入的图片复制黏贴到这个文件夹里面。

例如我那个引入的图片代码:jlabel = new JLabel(new ImageIcon("Image//真三.gif"))

我new一个folder叫Image,图片名称叫"真三.gif"


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

原文地址: http://outofmemory.cn/bake/11859404.html

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

发表评论

登录后才能评论

评论列表(0条)

保存