Java 按钮布局集
在我的代码中,我的Java 按钮布局集,java,swing,layout,jframe,jbutton,Java,Swing,Layout,Jframe,Jbutton,在我的代码中,我的ok按钮坏了,那么大又长,如何解决这个问题 public class d7Table extends JFrame { public JTable table; public JButton okButton; public d7Table() { table = new JTable(myTableModel(res)); okButton = new JButton("Ok"); add(new JScrollPane(tab
ok按钮
坏了,那么大又长,如何解决这个问题
public class d7Table extends JFrame {
public JTable table;
public JButton okButton;
public d7Table() {
table = new JTable(myTableModel(res));
okButton = new JButton("Ok");
add(new JScrollPane(table), BorderLayout.CENTER);
add(okButton, BorderLayout.PAGE_END);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(800, 600);
this.setLocation(300, 60);
this.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new d7Table();
}
});
}
}
我删除不相关的代码。
因为
JFrame
的默认布局是BorderLayout
,而PAGE\u END
表示框架的底部水平,如下所示:
您必须更改框架的布局,但不要这样做,只需创建一个面板,将组件添加到其中,然后将面板添加到容器中
JPanel p = new JPanel();
p.add(okButton);
add(p,BorderLayout.PAGE_END);
此处的一些链接可能有助于您进一步了解通常使用的布局管理器:
- 我更喜欢使用它,因为它是一个非常灵活的布局管理器,试试看,它太棒了
JFrame
的默认布局是BorderLayout
,而PAGE\u END
表示框架的底部水平,如下所示:
您必须更改框架的布局,但不要这样做,只需创建一个面板,将组件添加到其中,然后将面板添加到容器中
JPanel p = new JPanel();
p.add(okButton);
add(p,BorderLayout.PAGE_END);
此处的一些链接可能有助于您进一步了解通常使用的布局管理器:
- 我更喜欢使用它,因为它是一个非常灵活的布局管理器,试试看,它太棒了
边界布局的南部位置。这是BorderLayout
的默认行为
要修复它,请创建另一个JPanel
,将您的按钮添加到其中,然后将面板添加到SOUTH
位置
看看
上述方法通常称为复合布局,因为您使用一系列具有不同布局管理器的容器来实现所需的效果
JPanel buttonPane = new JPanel(); // FlowLayout by default
JButton okayButton = new JButton("Ok");
buttonPanel.add(okayButton);
add(okayButton, BorderLayout.SOUTH);
您已将该按钮添加到边界布局的南
位置。这是BorderLayout
的默认行为
要修复它,请创建另一个JPanel
,将您的按钮添加到其中,然后将面板添加到SOUTH
位置
看看
上述方法通常称为复合布局,因为您使用一系列具有不同布局管理器的容器来实现所需的效果
JPanel buttonPane = new JPanel(); // FlowLayout by default
JButton okayButton = new JButton("Ok");
buttonPanel.add(okayButton);
add(okayButton, BorderLayout.SOUTH);
使用okButton.setPreferredSize()
@Elist i addokButton.setPreferredSize(新维度(20,30))代码>但不是effect@Elist使用setPreferredSize是一个非常糟糕的主意,您没有考虑控制按钮大小计算方式的因素,此外,按钮受布局管理器的控制,布局管理器将忽略其组件的首选大小,这是一个错误。正如其他人所说,这就是BorderLayout的行为。使用okButton.setPreferredSize()
@Elist i addokButton.setPreferredSize(新维度(20,30))代码>但不是effect@Elist使用setPreferredSize是一个非常糟糕的主意,您没有考虑控制按钮大小计算方式的因素,此外,按钮受布局管理器的控制,布局管理器将忽略其组件的首选大小,这是一个错误。正如其他人所说,这就是BorderLayout的行为。你能解释更多吗@Sajjad:你会想阅读布局管理器教程,因为它在那里的描述非常好。1+回答。@Sajjad:关于“我试图通过反复试验来学习,不幸的是,我没有耐心从第一个开始学习!”
——如果你真的没有时间或耐心“从第一个开始学习”,那么你将无法学习Java,只是浪费你和我们的时间在这里提问。请证明我错了,并表明你愿意投入所需的时间和努力-我记得去年我开始swing的时候,我只是在没有学习的情况下碰运气,直到我创建了我的第一个项目,不幸的是,我无法完成它,因为在某些步骤中,我的代码和类就像一个无法理解我所做的事情的丛林@萨贾德:我告诉你我的故事,因为我没有走这条路,是一场灾难让我离开了爪哇。@Azad我真诚地感谢你的指导,我的穆斯林兄弟。你能解释更多吗@Sajjad:你会想阅读布局管理器教程,因为它在那里的描述非常好。1+回答。@Sajjad:关于“我试图通过反复试验来学习,不幸的是,我没有耐心从第一个开始学习!”
——如果你真的没有时间或耐心“从第一个开始学习”,那么你将无法学习Java,只是浪费你和我们的时间在这里提问。请证明我错了,并表明你愿意投入所需的时间和努力-我记得去年我开始swing的时候,我只是在没有学习的情况下碰运气,直到我创建了我的第一个项目,不幸的是,我无法完成它,因为在某些步骤中,我的代码和类就像一个无法理解我所做的事情的丛林@萨贾德:我告诉你我的故事,因为我没有走这条路,这是一场灾难让我离开了爪哇。@Azad我真诚地感谢你的指导,我的穆斯林兄弟。1+像往常一样,代码不错,但你可能在浪费时间。请注意在Mad的回答中OP的评论。1+代码和往常一样不错,但你可能是在浪费时间。请注意Mad回答中OP的评论。