【发布时间】:2015-05-17 17:07:47
【问题描述】:
我目前正在尝试与 Layouts 相处,考虑到我从来没有真正理解过它们,只做了 nullLayout,然后绝对定位所有元素。
但是,我目前有一个合适的小项目,我正在尝试学习它,它是一些小型聊天服务。
这是一张现在的照片:
这是一张我想象的完成的图片(请注意,这只是一些概念,但它应该给你正确的想法。我不是图形艺术家):
这是我当前的代码:
public class Gui {
JFrame frame;
JTextArea textfield;
JTextField enterMessage;
public Gui(){
frame = new JFrame();
frame.setSize(600, 400);
textfield = new JTextArea();
textfield.setText("Textfield");
textfield.setSize(400, 300);
JPanel messagePanel = new JPanel();
JTextField chatMessage = new JTextField();
chatMessage.setText("Send me");
JButton send = new JButton();
send.setText("Send");
messagePanel.add(chatMessage, BorderLayout.WEST);
messagePanel.add(send, BorderLayout.EAST);
frame.add(textfield, BorderLayout.WEST);
frame.add(messagePanel, BorderLayout.SOUTH);
frame.setVisible(true);
}
}
我的想法,连同迄今为止对 BorderLayouts 的理解,是将 Textfield(稍后聊天对话框结束的地方)放在框架内的 WEST 侧。
要发送的按钮和输入一些文本的字段将位于面板内,具有自己的边框布局,而按钮右侧有一些较小的部分,其余的宽度由文本字段填充。
然后整个面板在框架的南侧结束。
但是,现在我有一个问题,即元素不断缩小到尽可能小的尺寸。
我试图用 setSize(); ,但这根本没有影响,只是被完全忽略了。
有什么帮助可以指引我正确的方向吗?
【问题讨论】:
-
尝试为面板设置首选尺寸,它应该可以解决您的问题。
标签: java swing border-layout