Вам не хватает явной настройки предпочтительного размера текстового поля.
Приведенный ниже код будет работать следующим образом:
import javax.swing.*;
public class MyFrame extends JFrame {
private JPanel panel;
private JTextField textField;
private JButton button;
public MyFrame() {
panel = new JPanel();
textField = new JTextField();
textField.setPreferredSize(new Dimension(200, 20)); // This is the added line
panel.add(textField);
button = new JButton("press me");
panel.add(button);
this.setContentPane(panel);
this.setVisible(true);
this.setSize(800, 400);
this.setTitle("My first test frame");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Для изменения позиционирования вам нужно будет использовать макет на JPanel
. Каждый макет имеет свою особую конфигурацию.