可以利用标签组件来设置。
具体方法如下:
利用标签组件来设置,具体代码如下:
JPanelpnlMain=new JPanel()//创建面板pnlMain。
getContentPane().add(pnlMain)//将pnlMain设置为主面板。
Iconi=new ImageIcon("背景.jpg")/*用源图片“背景.jpg”构造一个ImageIcon对象i,需要注意如果图片的路悄携径使用的是相对路径,则图片文件必须放在类文件所在文件夹或项目的根文件夹中,否则图片的路径必须用绝对路径。*/
JLabellblLogo = new JLabel(i)//用指定的图片构造标签对象lb
this.getLayeredPane().add(lb, new Integer(Integer.MIN_VALUE))
//把标签放在第二层JlayerPane上。
lb.setBounds(0, 0,ii.getIconWidth(),i.getIconHeight())
//设置启睁伏标签的尺寸,即背景图象的大小。
getConentPane().setOpaque(false)/*把内容早含面板设置为透明,这样整个框架的背景就不再是内容面板的背景色,而是第二层中标签的图像。*/
pnlMain.add(lb)//将标签添加到主面板pnlMain中。
import java.awt.*import java.net.URL
import javax.swing.*
import java.awt.Dimension
import java.awt.Container
import java.awt.GridLayout
import javax.swing.ImageIcon
import java.awt.event.*
public class Example1 extends JFrame{
public static void main(String[] args){
JFrame jf=new JFrame("系统乱颂登录")
JPanel jpanel = new JPanel()
jf.setContentPane(jpanel)
//设置窗口在屏幕中居中显示
double width = Toolkit.getDefaultToolkit().getScreenSize().getWidth()
double height = Toolkit.getDefaultToolkit().getScreenSize().getHeight()
int x=(int)(width-300)/2
int y=(int)(height-180)/2
jf.setBounds(x,y,300,180)
//添加标签组件
GridLayout gird = new GridLayout(3,0)
JPanel jpanel1=new JPanel()
JPanel jpanel2=new JPanel()
JPanel jpanel3=new JPanel()
jpanel.setLayout(gird)
jpanel.add(jpanel1)
jpanel.add(jpanel2)
jpanel.add(jpanel3)
ImageIcon img = new ImageIcon("111.png")
JLabel imgLabel = new JLabel(img)//将背景图放在标签里。
jf.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE))
imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight())
JLabel name=new JLabel("姓 名:")
JTextField nametext=new JTextField(10)
JLabel pwd=new JLabel("密 码:")
JPasswordField pwd1=new JPasswordField(10)
JButton login=new JButton("登录")
JButton exit=new JButton("退出")
jpanel1.add(name)
jpanel1.add(nametext)
jpanel2.add(pwd)
jpanel2.add(pwd1)
jpanel3.add(login)
jpanel3.add(exit)
jf.getLayeredPane().setLayout(null)
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE)
jpanel.setOpaque(false)
jpanel1.setOpaque(false)
jpanel2.setOpaque(false)
jpanel3.setOpaque(false)
jf.setVisible(true)
}
}
那个图悄陪唯片 "111.png"你放启培到你创建的项目的文件夹里就行 测试成功
import java.awt.FlowLayoutimport 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)
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)