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(...)
方法,如下所示:
我正在尝试制作计算器,但我遇到了 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(...)
方法,如下所示: