[英]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.