如何给JAVA GUI 窗口添加背景图片?

如何给JAVA GUI 窗口添加背景图片?,第1张

用PANEL

继承PANEL重写paintComponent方法,

这些控制添加在panel上,就不会出现你说的问题了。

重写paint,会出现你说的问题

直接在窗体上添加了背景图片也会出现你说的问题。

下边是例子。

------------------------------------------------------------------------------------

import javax.swing.ImageIcon

public class App extends JFrame {

private JTextField textField

public App() {

getContentPane().setLayout(new BorderLayout(0, 0))

JPanel panel = new ImagePanel()

getContentPane().add(panel)

panel.setLayout(null)

JButton btnNewButton = new JButton("New button")

btnNewButton.setBounds(108, 234, 93, 23)

panel.add(btnNewButton)

textField = new JTextField()

textField.setBounds(214, 176, 96, 19)

panel.add(textField)

textField.setColumns(10)

setSize(460, 350)

setDefaultCloseOperation(EXIT_ON_CLOSE)

setVisible(true)

}

public static void main(String[] args) {

new App()

}

class ImagePanel extends JPanel {

protected void paintComponent(Graphics g) {

super.paintComponent(g)

ImageIcon icon = new ImageIcon("D:\\1.jpg")

g.drawImage(icon.getImage(), 0, 0, null)

}

}

}

ImageIcon img = new ImageIcon("src/images/abc.jpg")//注意图片路径

//如果实在拿不准图片的相对路径,可以写绝对路径比如d:\\workspace....\\xx.jpg

通过以下方式设置下背景就可以了:

background = new ImageIcon("images/backImage.png")

backImage = new JLabel(background)

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

background.getIconHeight())

backPanel = (JPanel) this.getContentPane()

backPanel.setOpaque(false)

this.getLayeredPane().setLayout(null)

this.getLayeredPane().add(backImage, new Integer(Integer.MIN_VALUE))

backPanel.setLayout(new BorderLayout())

这样就可以把图片放在最下面了,效果图:


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存