java中如何为JFrame设置背景图片,拜托给一个简单的实例。谢谢了。

java中如何为JFrame设置背景图片,拜托给一个简单的实例。谢谢了。,第1张

import java.awt.FlowLayout

import javax.swing.ImageIcon

import javax.swing.JButton

import javax.swing.JFrame

import javax.swing.JLabel

import javax.swing.JPanel

public class bj {

private JFrame frame = new JFrame("背景图片测试")

private JPanel imagePanel

private ImageIcon background

public static void main(String[] args) {

new bj()

}

public bj() {

background = new ImageIcon("C:\\Users\\xin.wen\\Pictures\\2.jpg")// 背景图片

JLabel label = new JLabel(background)// 把背景图片显示在一个标签里面

// 把标签的大小位置设置为图片刚好填充整个面板

label.setBounds(0, 0, background.getIconWidth(),

background.getIconHeight())

// 把内容窗格转化为JPanel,否则不能用方法setOpaque()来使内容窗格透明

imagePanel = (JPanel) frame.getContentPane()

imagePanel.setOpaque(false)

// 内容窗格默认的布局管理器为BorderLayout

imagePanel.setLayout(new FlowLayout())

imagePanel.add(new JButton("测试按钮"))

frame.getLayeredPane().setLayout(null)

// 把背景图片添加到分层窗格的最底层作为背景

frame.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE))

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

frame.setSize(background.getIconWidth(), background.getIconHeight())

frame.setResizable(false)

frame.setVisible(true)

}

}

import javax.swing.*

import java.awt.*

/**

* @author Hardneedl

*/

final class PictureBackgroundFrame extends JFrame {

public String getTitle() {return "frame title"}

static private final Dimension size = new Dimension(600, 400)

public Dimension getPreferredSize() {return size}

public Dimension getMaximumSize() {return size}

public Dimension getMinimumSize() {return size}

public Dimension getSize() {return size}

private static final Image image = Toolkit.getDefaultToolkit().getImage("b.JPG")

private static final JComponent canvas = new JComponent(){

protected void paintComponent(Graphics g) {

super.paintComponent(g)

Graphics gg = g.create()

gg.drawImage(image,0,0,getWidth(),getHeight(),this)

gg.dispose()

}

}

PictureBackgroundFrame() throws HeadlessException {

attachListeners()

doLay()

}

private void attachListeners() {

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

}

private void doLay() {

Container container = getContentPane()

container.add(canvas)

pack()

setVisible(true)

}

public static void main(String[] args) {new PictureBackgroundFrame()}

}


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

原文地址: http://outofmemory.cn/tougao/7803107.html

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

发表评论

登录后才能评论

评论列表(0条)

保存