JTextfield位置不会改变

时间:2013-06-17 18:58:17

标签: java swing jframe jtextfield layout-manager

我一直在尝试设置文本字段的位置,但似乎只是 生成在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 个答案:

答案 0 :(得分:2)

我要做的第一件事就是尝试克服绝对控制的需要,从长远来看,它会让你的生活更轻松。

Swing员工将系统称为布局管理器,以便于在屏幕上定位UI元素。布局管理器API是Swing工作原理的基础。它使得为不同系统开发UI变得更加容易和快捷,因为您不需要连续计算UI可能运行的所有各种系统的字体度量和屏幕分辨率的差异(针对MacOS,Windows 7和Windows XP开发)同时,我可以确保你这是一个神派)

您可以尝试类似......

newContentPane.setLayout(new GridBagLayout());
GridBagConstraintss gbc = new GridBagConstraintss();
gbc.weightx = 1;
gbc.weighty = 1;
gbc.anchor = GridBagConstraints.NORTHWEST;
newContentPane.add(textfield);

详细了解Using Layout !anagersA visual guide to layout managers了解详情