繁体   English   中英

Java BorderLayout 不起作用

[英]Java BorderLayout not working

边框布局对我不起作用......我一直在使用教程并复制了他们在我的代码上运行时所做的事情,但它不起作用。 如果可以请指出我的错误并解释为什么这是一个错误,非常感谢! :) 我的代码如下:

public static JButton bb = new JButton("Continue");
public TextArea ta = new TextArea(30,140);
TextArea tb = new TextArea(3,140);
public int counter = 0;

//main class
public static void main(String[]args){      
    Frame f = new Frame("---Quest---");
    base ex = new base();
    ex.init();
    f.setResizable(false);
    f.add("Center", ex);
    f.pack();
    f.show(true);
    f.setSize(1100,800);
}
public void init() {        
    bb.addActionListener(this);
    Panel p;
    setLayout(new BorderLayout());
    p = new Panel();

    p.add(ta,BorderLayout.NORTH);
    p.add(tb, BorderLayout.CENTER);
    p.add(bb, BorderLayout.SOUTH);
    tb.setLocation(0,50);
    p.setBackground(Color.blue);
    ta.setBackground(Color.cyan);
    ta.setEditable(false); 
    add("Center", p);
}            
setLayout(new BorderLayout());
p = new Panel();

p.add(ta,BorderLayout.NORTH);
p.add(tb, BorderLayout.CENTER);
p.add(bb, BorderLayout.SOUTH);

在不同的容器上调用setLayout不会改变其他容器的布局管理器,这会很烦人。

Panel默认使用FlowLayout 相反,尝试使用p = new Panel(new BorderLayout())

我还鼓励使用add(p, BorderLayout.CENTER); over add("Center", p); ,可能会出错的更少(例如,拼写错误的center

尽量避免混合使用 AWT 和 Swing 组件,它们不能很好地协同工作,相反,选择一个 API 并坚持使用它。 作为一般建议,如果不是 JavaFX,我们至少建议 Swing,因为它们比 AWT 有更好的社区支持。

查看使用 JFC/Swing 创建 GUI在容器内布置组件以了解更多详细信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM