qq_50706936
2021-05-08 16:24
采纳率: 100%
浏览 22
已采纳

有关于java的AWT编程中BorderLayout问题

import java.awt.*;

public class Main {

    public static void main(String[] args)
    {
        var p1 = new Panel();
        p1.setLayout(new BorderLayout());
        p1.add(new Button("*"),BorderLayout.SOUTH);
        p1.add(new Button("*"),BorderLayout.WEST);
        p1.add(new Button("*"),BorderLayout.EAST);
        p1.add(new Button("*"),BorderLayout.NORTH);
        p1.add(new Button("*"),BorderLayout.CENTER);
        var p = new Frame();
        p.setLayout(new BorderLayout());
        p.add(p1,BorderLayout.NORTH);
        p.add(p1,BorderLayout.SOUTH);
        p.add(p1,BorderLayout.WEST);
        p.add(p1,BorderLayout.EAST);
        p.add(p1,BorderLayout.CENTER);
        p.pack();
        p.setVisible(true);
    }
}

我的想法是在p中的五个部分放入p1(这个也是BorderLayout布局),因为BorderLayout布局管理器不是每个区域只能放一个组件吗,但是Panel也是组件,我就想把p1放入p的五个部分,但结果只是程序中p的最后一个add效果,不应该是区域重复才会替换吗,这个为啥跟我想的结果不一样?感谢大佬们的回答,感激不尽!

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

3条回答 默认 最新

  • 最佳回答

    同一个p1不能同时放在5个不同的区域,如果想达到你想要的效果,必须定义5个Panel。

    评论
    解决 无用
    打赏 举报
查看更多回答(2条)

相关推荐 更多相似问题