java编程JPanel上加JPanel,为什么设了null布局之后什么都不显示

2025-01-03 20:34:04
推荐回答(4个)
回答1:

  1. 首先需要把你需要添加在这个jpanel上的控件添加到这个面板上`

  2. 其次`jpanel默认的是,流动布局,默认居中

  3. 如果设置了这个jpanel的布局为null,即无布局,那么需要给你添加在这个面板上的控件设置位置和尺寸大小.

  4. 最后需要设置frame的显示属性为true

回答2:

JPanel默认属性 下 你是什么都看不到的。
null布局下控件都必须用绝对定位,不然就没有。
最常用的定位方法是setBounds(x, y, width, height);控件都有

回答3:

if(e.getSource()==tz){
先看到一点,,对象的比较,不要使用==

JLabel 更新一下

viplog.setBounds(50,120,170,70);
viplog.addMouseListener(this);
//viplog.setEnabled(false);
this.add(viplog);
//this.add(mpanel);
viplog.updateUI(); ////////////////////////////////////////////////这

回答4:

写了个简单例子没有发现问题,给你参考下:

public class Welcome extends JFrame {
  static class viploginPanel extends JPanel {
    viploginPanel() {
      this.setLayout(null);// 没有发现问题
      JButton b = new JButton("123");
      b.setBounds(50, 50, 200, 200);
      this.add(b);
      b = new JButton("123456");
      b.setBounds(250, 300, 100, 20);// 这个按钮也要显示设置bound
      this.add(b);
      this.setBackground(Color.white);
    }
  }
  public static void main(String[] args) {
    Welcome f = new Welcome();
    f.add(new viploginPanel());
    f.setSize(400, 400);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
  }
}