Не могу добавить TextField для интерфейса в Java

Я не могу добавить этот TextField к интерфейсу, получающееся окно является простым без каких-либо подробностей, хотя я много пытался найти, в чем проблема... вот код: import java.awt.ComponentOrientation; import java.awt.Font;

import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.UIManager;

public class Calculator extends JFrame {
    private JTextField display;

    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (Exception e) {
            System.out.println("Could not load system interface\n");
        }
        new Calculator();
    }

    public Calculator() {
        super("Calculator");
        sendDisplay();
        sendUI(this);
    }

    private void sendDisplay() {
        display = new JTextField("0");
        display.setBounds(10, 10, 324, 50);
        display.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
        display.setEditable(false);
        display.setFont(new Font("Arial", Font.PLAIN, 30));
        display.setVisible(true);
        add(display);
    }

    private void sendUI(Calculator app) {
        app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        app.setVisible(true);
        app.setSize(400, 600);
        app.setLayout(null);
        app.setResizable(false);
        app.setLocationRelativeTo(null);
    }
}

Буду признателен, если кто-то сможет найти проблему

1 ответ

Решение

Делать setVisible(true) последнее утверждение вашего sendUI метод

private void sendUI(Calculator app) {
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    app.setSize(400,600);
    app.setLayout(null);
    app.setResizable(false);
    app.setLocationRelativeTo(null);

    app.setVisible(true);               
}

Хорошая практика

  • Избегайте использования абсолютного позиционирования (нулевой макет).
Другие вопросы по тегам