一键添加和删除字符到文本字段
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();
}
}
});
我想一键添加和删除 ± 运算符。
所以开头的'-'应该是不可用的。当我点击“-”时,它应该被添加到文本字段的第一行。如果它已经存在并且我们再次单击它,它应该被删除。我该怎么做?
这是我到目前为止编写的代码:
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();
}
}
});