java Swing组件的位置不正确
我想把按钮btn
放在JFrame
的底部。我右边有这个。我的代码中的bug在哪里
class MainClass extends JFrame {
private JSplitPane splitPan=null;
private void treePanel(){
DefaultMutableTreeNode nod=new DefaultMutableTreeNode("AAA",true);
nod.add(new DefaultMutableTreeNode("abcd"));
JTree tree=new JTree(nod);
JScrollPane scroll=new JScrollPane(tree);
splitPan=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,scroll,new JLabel("aaaaa"));
splitPan.setSize(this.getMaximumSize());
add(splitPan);
}
public MainClass() {
setLayout(new BoxLayout(getContentPane(), BoxLayout.X_AXIS));
treePanel();
add(new JButton("btn"));
pack();
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(300,200);
setVisible(true);
}
}
# 1 楼答案
默认情况下,JFrame已经实现了BorderLayout,如果你想把JButton放在
JFrame
的底部,那么你必须定义add(new JButton("btn", BorderLayout.SOUTH));
# 2 楼答案
你应该使用^{} 而不是
X_AXIS
:# 3 楼答案
BoxLayout.Y_AXIS
。维斯