添加&使用一个按钮删除字符到文本字段

时间:2017-03-08 07:07:46

标签: java swing jtextfield

我想要添加&用一个按钮删除±操作符。

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

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

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

5 个答案:

答案 0 :(得分:0)

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

试试这个:

    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
            }
    }

如果您的字段为空,则可以将文本设置为您想要的任何内容,如果不是,则将其设置为空。

答案 1 :(得分:0)

没有对此进行测试,但它应该有效:

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

    }

});

随时问你是否有问题

答案 2 :(得分:0)

试试这个:

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

答案 3 :(得分:0)

我将新的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);
                }
            }
        });

答案 4 :(得分:0)

对这个想法的另一种看法是更有效率,因为你不会创建这么多临时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();
        }
    }
});