一键添加和删除字符到文本字段

Add & Remove character to text field with one button

我想一键添加和删除 ± 运算符。

所以开头的'-'应该是不可用的。当我点击“-”时,它应该被添加到文本字段的第一行。如果它已经存在并且我们再次单击它,它应该被删除。我该怎么做?

这是我到目前为止编写的代码:

private void jButtonActionPerformed(java.awt.event.ActionEvent evt) {                                      
    jTextField.setText( "-" + jTextField.getText());
}

如果没有文字,要添加什么文字?

试试这个:

    private void jButtonActionPerformed(java.awt.event.ActionEvent evt) 
    {
            if(jTextField.getText().length() != 0)
            {
                jTextField.setText("");
            }
            else
            {
                //Set the text from wherever you are receiving it
            }
    }

当您的字段为空时,您可以将文本设置为任何您想要的,如果不是,它将被设置为空。

没有测试这个,但它应该可以工作:

b.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
        if (textField.getText().charAt(0) == '-') {
            String toSet = textField.getText();
            toSet = toSet.substring(0, 0).replace("-", "");
            textField.setText(toSet);
        } else {
            textField.setText("-" + textField.getText());
        }

    }

});

如有问题欢迎随时提问

试试这个:

private void jButtonActionPerformed(java.awt.event.ActionEvent evt) {
        String text = jTextField.getText();
        if (text != null && text.indexOf("-") == 0) {
            text = "+" + text.substring(1, text.length());
        } 
        else if (text != null && text.indexOf("+") == 0) {
            text = "-" + text.substring(1, text.length());
        }
        else {
            text = "-"+(text != null ? text : "");
        }
        jTextField.setText(text);
    }

我将向按钮添加一个新的 ActionListener 并使用 @Override 语句定义它的代码。这应该可以解决问题:

button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {

                String fieldText = textField.getText();

                if (fieldText.substring(0,1).equals("-")){
                    textField.setText(fieldText.substring(1, fieldText.length()));
                } else {
                    textField.setText("-" + fieldText);
                }
            }
        });

对这个想法的不同看法会更有效一些,因为您不会创建那么多临时 String 对象

btn.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        Document doc = field.getDocument();
        try {
            if (doc.getLength() > 0 && doc.getText(0, 1).equals("-")) {
                doc.remove(0, 1);
            } else {
                doc.insertString(0, "-", null);               
            }
        } catch (BadLocationException ex) {
            ex.printStackTrace();
        }
    }
});