Java Swing(BoxLayout)对齐问题
作者:互联网
对于Java Swing来说,我是一个非常陌生的人,在布局合理的过程中我遇到了很多问题.我已经在该网站上签出了google甚至其他答案,但是我发现没有任何信息似乎可以解决该问题.这是我努力的结果:
如您所见,标签,文本字段和按钮都未对齐.我的目标是所有人都具有相同的左边框,按钮和文本字段具有相同的右边框,这些左,右边框与左,右边框的距离均相同我窗户的两边.
这是我的代码的重要部分:
public void run()
{
JFrame frame = new JFrame("Arduino Server");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
InstancePanel = new ServerGUIPanel();
frame.getContentPane().add(InstancePanel);
frame.pack();
frame.setVisible(true);
}
并且,在ServerGUIPanel.java中:
public ServerGUIPanel()
{
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
setPreferredSize(new Dimension(500, 500));
setBorder(new EmptyBorder(10, 10, 10, 10));
StatusLabel = new JLabel("STATUS: BOOTUP");
add(StatusLabel);
PortField = new JTextField();
PortField.setPreferredSize(new Dimension(5000, 20));
PortField.setMaximumSize(PortField.getPreferredSize());
PortField.setActionCommand("PortChanged");
add(PortField);
ConnectionButton = new JButton();
ConnectionButton.setPreferredSize(new Dimension(5000, 20));
ConnectionButton.setMaximumSize(ConnectionButton.getPreferredSize());
ConnectionButton.setActionCommand("ConnectionClicked");
add(ConnectionButton);
}
有人对此有一个简单的解决方案吗?我在这里做错了什么?
非常感谢你!
-乔治·奥茨·拉森(Georges Oates Larsen)
解决方法:
阅读有关How to Use BoxLayout的Swing教程中的内容,了解使用BoxLayout的基础知识以及对齐问题.
基本上,您需要确保所有组件的alignmentX值都设置为左对齐.
也:
>不要使用setPreferredSize()设置组件的大小.每个Swing组件将确定其自己的首选大小.
>使用Java命名约定.变量名称不应以大写字母开头.
标签:boxlayout,java,user-interface,swing 来源: https://codeday.me/bug/20191011/1890756.html