java swing中的JLayeredPane分层面板的问题。。

java swing中的JLayeredPane分层面板的问题。。,第1张

class Laypanel extends JFrame {

Laypanel() {

JPanel pane2 = new JPanel()// 普通面板

JButton btn3 = new JButton("deng ")

pane2.add(btn3)

JLayeredPane pane = new JLayeredPane()// 分层面板

JButton btn1 = new JButton("确定")

JButton btn2 = new JButton("取消")

pane.add(btn1, (Integer) (JLayeredPane.PALETTE_LAYER + 50))

pane.add(btn2, (Integer) (JLayeredPane.PALETTE_LAYER + 50))

btn1.setBounds(30, 50, 80, 80)

btn2.setBounds(50, 80, 80, 80)

// 这样满意了不?

JPanel pnlMain = new JPanel(new GridLayout())

pnlMain.add(pane)

pnlMain.add(pane2)

this.add(pnlMain)

// this.add(pane)// 向窗口添加分层面板

// this.add(pane2)// 向窗口添加普通面板

this.setBounds(100, 100, 500, 300)

this.setVisible(true)

this.validate()

}

做一个实例给你吧。这样做也可以的。

import java.awt.*

import javax.swing.*

public class Test extends JFrame{

JPanel jp=(JPanel)this.getContentPane()

public Test()

{

jp.setLayout(null)

JLabel jl=new JLabel("JLabel")

JButton jb=new JButton("Button")

jl.setBounds(new Rectangle(20,20,80,25))

jb.setBounds(new Rectangle(20,60,80,25))

jp.add(jl)

jp.add(jb)

}

public static void main(String[] args) {

Test frame=new Test()

frame.setResizable(false)

ImageIcon img = new ImageIcon("./images/backimage.jpg")//这是背景图片,注意这里是局部路劲在项目名下面的目录里,比如../项目名/images/...

JLabel imgLabel = new JLabel()//将背景图放在标签里。

imgLabel.setIcon(img)

frame.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE))//注意这里是关键,将背景标签添加到jfram的LayeredPane面板里。

imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight())//设置背景标签的位置

Container cp=frame.getContentPane()

cp.setLayout(new BorderLayout())

((JPanel)cp).setOpaque(false)//注意这里,将内容面板设为透明。这样LayeredPane面板中的背景才能显示出来。

frame.setSize(1024,544)

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

frame.setVisible(true)

}

}


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存