2013-05-31 59 views
0

我在Netbeans中構建了一個GUI - 這是一個簡單的小應用程序 - 一個轉換器程序。基本上,用戶輸入任何他們想要轉換爲文本字段的內容,從多個單選按鈕(比如lbs到kg)中選擇轉換,然後單擊「轉換」。在Netbeans中構建GUI,應該使用哪一種?

的事情是,我想要的「轉換」按鈕和單選按鈕的行爲是這樣的:

  1. 單選按鈕和「轉換」按鈕將被禁用程序加載時。
  2. 如果用戶在文本字段中鍵入一個數字(只有一個數字),單選按鈕和「轉換」按鈕將變爲可用。
  3. 如果使用刪除了他們鍵入的內容,則會再次禁用所有內容,直到他們鍵入另一個數字。

我已設法設置單選按鈕和「轉換」按鈕,使其被禁用,取消選中每個組件的屬性中的「啓用」框。我也已經能夠使用一個簡單的if語句和的keyTyped事件啓用/禁用如下:

private void txtUsrInputKeyTyped(java.awt.event.KeyEvent evt) 
{          
    if (!txtUsrInput.getText().equals("")) 
    { 
     btnCalculate.setEnabled(true); 
    } 
    else 
    { 
     btnCalculate.setEnabled(false);    
    } 
} 

我想延長我的代碼,如果用戶不小心類型的字母或符號的文本字段(不要問我爲什麼要這麼做,當他們知道他們只能輸入一個數字時),程序將或者忽略他們輸入的內容,或者顯示錯誤。當然,例外是鍵入一個句點(。),因爲他們可能要指示一個十進制數。

有關我該怎麼做的任何想法?希望我寫的是有道理的!

回答

0

你的GUI

如果你不知道的搖擺,然後學習它。瞭解所有組件的工作方式對於任何開發人員來說都是一個巨大的優勢,如果出現任何問題,您確切知道如何解決問題(或者至少有更好的機會)。看看this的東西,對於一些入門幫助。

檢查小數

這看起來像正則表達式的工作。你可以做的是指定一個號碼[0-9],以及一段時間,\.。然後確保輸入數字或小數點的次數。但這裏要注意的重要一點是,用戶只能鍵入一個小數,它捲起爲:

([0-9]+(\.[0-9]+)) 

這將允許像90.91.9302值。它會而不是允許值如.901。如果你希望允許,簡單交換第一+*

([0-9]*(\.[0-9]+)) 

使用它

因爲一個文本框中包含字符串,你可以用你的正則表達式進行比較。簡單地說:

if(textBox1.getText().matches("([0-9]+(\.[0-9]+))")) { 
    // Run some code in here. 
} 
+0

克里斯 - 感謝您的正則表達式的信息,並感謝有關GUI創建的信息! –

+0

沒問題。如果這個答案有幫助,請將其標記爲正確:) – christopher

+0

好的,現在我有一個新問題!當我在Ubuntu 12.04中運行jar文件時,上面的正則表達式完美工作。但是,如果我啓動到Windows XP,並從那裏運行Jar,正則表達式不起作用!即使輸入正確的數據,我輸入的任何內容都會產生錯誤。 –

0

那麼,如果GUI很簡單,不要使用GUI生成器,而是從頭開始編寫代碼。以下更艱難的道路,你會了解佈局,行動偵查員等......

相關問題