JTextField 从左到右的数字顺序

JTextField order of numbers left to right

我正在尝试制作计算器,但我遇到了 JTextField 问题。当我单击 1,2,3,4,5 之类的数字 (JButtons) 时,它们会像 54321 一样出现在 JTextField 上。那么,我怎样才能将其更改为显示 12345 而不是 54321?

public void actionPerformed(ActionEvent e) {

    JButton clickedButton = (JButton) e.getSource();


    String displayValue = parent.getDisplayValue();

    String clickedBtnValue = clickedButton.getText();

    parent.setDisplayValue(clickedBtnValue + displayValue); 

contentPane = new JPanel();
    textField = new JTextField(30);
    textField.setAlignmentX(Component.LEFT_ALIGNMENT);
    contentPane.add(textField);
    textField.setHorizontalAlignment(JTextField.RIGHT);
    textField.setBounds(10, 11, 152, 32);
    textField.setColumns(1);
    textField.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
    textField.addActionListener(eng);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 184, 312);

    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    setContentPane(contentPane);
    contentPane.setLayout(null);

你问这个问题之前真的想过这个问题吗?

您可以控制您的代码,因此您应该了解您的代码在做什么:

parent.setDisplayValue(clickedBtnValue + displayValue); 

代码完全按照您的指示执行 - 按钮文本附加在现有文本之前。

如果您不喜欢它那样显示,那么您可以尝试:

parent.setDisplayValue(displayValue + clickedBtnValue); 

如果您想要更好的解决方案,可以使用 replaceSelection(...) 方法,如下所示: