2017-03-08 18 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(); 
     } 
    } 
}); 
相關問題