我在JFrame中 就添加一个分层面板,不添加JPanel的时候 加到分层面板上的组件可以分层放置并显示出来
可是当我再向JFrame里面添加一个JPanel 和分层面板的时候 ,加到分层面板的组件就显示不出来了。。
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Laypane {
public static void main(String[] args) {
new Laypanel();
}
}
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);
this.add(pane);//向窗口添加分层面板
this.add(pane2);//向窗口添加普通面板
this.setBounds(100, 100, 500, 300);
this.setVisible(true);
this.validate();
}
}
java swing中的JLayeredPane分层面板的问题。。
答案:3 悬赏:50
解决时间 2021-03-02 14:30
- 提问者网友:逐野
- 2021-03-02 10:32
最佳答案
- 二级知识专家网友:湫止没有不同
- 2021-03-02 11:53
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();
}
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();
}
全部回答
- 1楼网友:狙击你的心
- 2021-03-02 14:28
这是因为JFrame默认是中心格局,即每个组件都是中心排列,下一个会覆盖上一个,你这个里面有两个组件PANE2和PANE,你可以设置一下JFrame的布局不就可以了吗,
- 2楼网友:星星坠落
- 2021-03-02 13:18
应该是pane被pane2覆盖了。一个Frame最多只能加一个Panel对象,最如你用LayeredPanel,最好把其它的层加到LayeredPanel上,而不是直接加到Frame上。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |