ZZZ_zzz555 2023-05-13 16:38 采纳率: 95%
浏览 18
已结题

用Panel为什么无法显现按钮


public class Test {
    public static void main(String[] args) {
        JFrame jFrame = new JFrame("学习监听");
        jFrame.setSize(600,600);
        jFrame.setLocationRelativeTo(null);
        jFrame.setLayout(null);
        jFrame.setDefaultCloseOperation(3);
        JButton jbt=new JButton("点我试试看");
        jbt.setBounds(50,50,100,100);
        jbt.addActionListener( new jian());
        jFrame.getContentPane().add(jbt);
        jFrame.setVisible(true);

    }


这样运行以后可以显示我的按钮
但是我换了另一种写法就不显示是为啥啊

public class Test {
    public static void main(String[] args) {
        JFrame jFrame = new JFrame("学习监听");
        jFrame.setSize(600,600);
        jFrame.setLocationRelativeTo(null);
        jFrame.setLayout(null);
        jFrame.setDefaultCloseOperation(3);
        JButton jbt=new JButton("点我试试看");
        jbt.setBounds(50,50,100,100);
        jbt.addActionListener( new jian());
        Panel p=new Panel();
        p.add(jbt);
        jFrame.add(p);
        jFrame.setVisible(true);

    }



彭于晏们快来看看吧

  • 写回答

3条回答 默认 最新

  • 创意程序员 2023-05-13 17:14
    关注

    jFrame.setLayout(null) 注释掉这个,按钮就可以显示出来。
    jFrame.setLayout(null)表示启用绝对布局,绝对布局的优点是你可以非常精确地控制组件的位置和大小,适用于一些特定的布局需求。然而,它也有一些局限性。由于组件的位置和大小是固定的,当窗体的大小改变时,组件的位置和大小不会自动调整,可能导致组件的重叠或不可见。此外,绝对布局不考虑不同操作系统或不同屏幕分辨率的差异,可能导致在不同环境下显示效果不一致。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月21日
  • 已采纳回答 5月13日
  • 创建了问题 5月13日

悬赏问题

  • ¥15 求高通平台Softsim调试经验
  • ¥15 canal如何实现将mysql多张表(月表)采集入库到目标表中(一张表)?
  • ¥15 wpf ScrollViewer实现冻结左侧宽度w范围内的视图
  • ¥15 栅极驱动低侧烧毁MOSFET
  • ¥30 写segy数据时出错3
  • ¥100 linux下qt运行QCefView demo报错
  • ¥50 F1C100S下的红外解码IR_RX驱动问题
  • ¥20 基于matlab的航迹融合 航迹关联 航迹插补
  • ¥15 用Matlab实现图中的光线追迹
  • ¥15 联想笔记本开机出现系统更新界面