【发布时间】:2013-06-17 18:58:17
【问题描述】:
我一直在尝试设置我的文本字段的位置,但它似乎只是
正在生成JFrame 的中间。
我想要它在左北角,我该怎么做?我已经添加了我的程序的代码。
private static void createAndShowGUI() {
//Create and set up the window.
JFrame frame = new JFrame("Atarim");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create and set up the content pane.
JComponent newContentPane = new Atarim(frame);
newContentPane.setOpaque(true);
frame.setContentPane(newContentPane);
frame.setLocationRelativeTo(null);
frame.setSize(352, 950);
JTextField textfield = new JTextField("search...");
textfield.setLocation(0, 0);
textfield.setSize(150,20);
textfield.setVisible(true);
newContentPane.add(textfield);
frame.setVisible(true);
}
【问题讨论】:
-
1) Java GUI 可能必须在多个平台、不同的屏幕分辨率和使用不同的 PLAF 上工作。因此,它们不利于组件的精确放置。要组织强大的 GUI 组件,请改用布局管理器或它们的组合,以及用于空白空间的布局填充和边框。 2)不要设置顶级容器的大小。而是布局内容并致电
pack()。 3)textfield.setSize(150,20);文本字段的大小最好通过它要包含的字符数(在构造函数中提供)和字体来暗示。 -
使用 setHorizontalTextPosition(javax.swing.LEFT);
-
和类似的 setVerticalTextPosition(javax.swing.TOP)
标签: java swing jframe jtextfield layout-manager