无法将 TextField 添加到 Java 中的界面

Can't add a TextField to Interface in Java

我无法将此 TextField 添加到界面,生成的 window 很简单,没有任何细节,尽管我尝试了很多来找出问题所在。这是代码: 导入 java.awt.ComponentOrientation; 导入 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);
    }
}

如果有人能找到问题,我将不胜感激

Make 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);               
}

良好做法

  • 避免使用绝对定位(空布局)。