2017-03-08 13 views
0

我想添加&用一个按钮删除±运算符。使用一个按钮将字符添加到文本字段并将其删除

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

这是代码我迄今写的:

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

制作的“按钮”一个' JCheckBox'。当它被选中时,获取文本,检查它是否已经以“ - ”开头,如果不是,则在文本前加一个。当它没有被选中时,执行相同的检查(但是相反,如果是这样,从第一个字符获取子字符串并将其设置为文本。仔细查看'String'方法以获取详细信息。因为用户总是可以手动输入'-'符号,这听起来更简单! –

回答

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

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

+0

不完全正确,他想要一个按钮,它会根据是否在文本字段中添加或删除'-'。最少这就是我的理解 – XtremeBaumer

+0

有没有数字已经输入另一个按钮,而不是空的,这是为计算器应用 –

+0

@XtremeBaumer哇,我认为该领域的内容需要添加或删除。 –

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

    } 

}); 

随时问,如果你有任何疑问

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); 
       } 
      } 
     }); 
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(); 
     } 
    } 
}); 
相关问题