我想要添加&用一个按钮删除±操作符。
所以在开头' - '应该不可用。当我点击“ - ”时,它应该被添加到文本字段的第一行。如果它已经存在并且我们再次点击它,它应该被删除。我该怎么做?
这是我到目前为止编写的代码:
private void jButtonActionPerformed(java.awt.event.ActionEvent evt) {
jTextField.setText( "-" + jTextField.getText());
}
答案 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();
}
}
});