【发布时间】:2023-03-22 20:40:01
【问题描述】:
边框布局对我不起作用...我一直在使用教程并复制了他们所做的,当我在我的代码上运行它时它不起作用。如果您能指出我的错误并解释为什么这是一个错误,那将非常感谢! :) 我的代码如下:
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);
}
【问题讨论】:
-
请 1) 完全定义“不起作用”的含义。你期待看到什么?你实际上看到了什么? 2)请尝试格式化您的代码,使其符合标准并且更容易被我们理解。代码块的缩进不是你应该随意做的事情,而是每个块应该有 4 个空格并且不应该改变。
-
还有这个;
@SuppressWarnings("deprecation")是一个永远不应该使用的注解。 -
f.add("Center", ex);使用f.add(ex, BorderLayout.CENTER)可能会更好。我也可能是一个更好的主意,不要使用 15 年前被取代的 API……只是说…… -
@DJRIFFLE
p使用的是FlowLayout,而不是BorderLayout... -
您还混合了 Swing 和 AWT 组件,这将导致您在不兼容的情况下陷入痛苦的滑坡,因为组件会在谁应该在上面绘制时相互争斗......
标签: java swing awt layout-manager border-layout