2014-05-17 63 views
0

我正在開發一個Java Swing應用程序,它有一個使用JButtons的數字鍵盤。它有數字0 - 9,小數點和輸入按鈕。顯然,按鈕上的數字只是一個字符,而不是我想要的整數。用JButtons編寫數字用戶輸入的最佳方法是什麼?

我希望用戶能夠點擊按鈕輸入貨幣金額,例如$ 25.68。當他們完成後,他們將按下輸入。

我想把這個數量,並把它放到一個雙變量。

在actionPerformed功能,我會做平常:

if (e.getSource() == numberButton1){ 
    //put in first index of array 
} 

起初,我以爲我會把這個通過將其分配到-1,輸入爲成整數,佔點按鈕的陣列 - 2。但是,一旦我有數組中的數字,他們會倒退,我知道我可以通過計算元素的數量並從最後一個索引開始,然後使用10因子來反向讀取它們,但是所有這些似乎都過分了複雜。更不用說必須考慮小數位了。所以,在我開始寫一百萬行代碼之前,我想我會問...

...有沒有簡單的方法來做到這一點?

回答

0

聲明全局字符串值。對於每個數字或點(。)按鈕,將數字或點連接到字符串。然後在需要使用它時將字符串解析爲double。這裏是一個例子:

String value = ""; 
// Lines of code 
if (e.getSource() == numberButton1) 
{ 
    value += "1"; 
} 
if (e.getSource() == dotButton) 
{ 
    value += "."; 
} 
// Do the same for other numbers 
// When you need the value as a double do the following 
double _value = Double.parseDouble(value); 

PS:不要忘記添加檢查,如果用戶點兩次點。你不能有兩位小數。

0

串聯在串 所有的輸入然後在進入按鈕點擊解析字符串爲雙

Declar

String value =""; 
double val =0; 

在每個按鈕

value=value+"3"; 

而且......

value=value+"."; 

依此類推。

然後在進入按鈕

val =Double.parseDouble(value); 

現在它numiric雙...使用它

+0

對不起,不格式化。我在移動 – Yazan

2

考慮考慮看看Actions API,它可以讓你定義一個自包含的,你可以配置你喜歡

例如任何方式的動作...

public class NumberAction extends AbstractAction { 

    private char value; 
    private JTextField field; 

    public NumberAction(char value, JTextField field) { 
     this.value = value; 
     this.field = field; 
     putValue(NAME, Character.toString(value)); 
    } 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     String text = field.getText(); 
     text += value; 
     field.setText(text); 
    } 

} 

現在,我已經簡單地使用char作爲基準值,因爲,實際上,你實際上並沒有使用任何種類的數值...

你會構造你的按鈕做類似...

JButton num7 = new JButton(new NumberAction('7', field); 
JButton num8 = new JButton(new NumberAction('8', field); 
JButton num9 = new JButton(new NumberAction('9', field); 
//... 

例如...

相關問題