2014-10-27 104 views
0

目前有我的領域,如認爲:如何將JTextField轉換爲String/Long?

final JTextField PID = new JTextField("Product ID", 7); 
frame.getContentPane().add(PID); 

我的方法:

public StockItem(Long id, String name, String desc, double price) { 
    this.id = id; 
    this.name = name; 
    this.description = desc; 
    this.price = price; 
} 

嘗試使用此方法與價值觀從我JTextField S,但它不允許用在我的龍JTextField小號/ String/double地方。 有什麼辦法可以將我的JTextField轉換成所需的東西,而無需編輯我的方法。

+2

'JTextField'將始終包含文本(字符串)。你可以用它來解析,轉換,做任何你想做的事情。如果你想要一個UI控件,只允許使用數字,那麼你可以使用'JSpinner'。 – 2014-10-27 12:16:06

+0

請參閱[本答案](http://stackoverflow.com/a/13424140/1076463)使用'JFormattedTextField'示例 – Robin 2014-10-27 12:57:34

回答

1

您應該使用文本字段文本並解析它。

long l = Long.parseLong(PID.getText()); 
double d = Double.parseDouble(PID.getText()); 
+0

請注意,您必須嘗試捕獲解析,因爲textfild可能包含一些不是很長的東西或雙倍。檢查這篇文章:http://alvinalexander.com/java/edu/qanda/pjqa00011.shtml – cholewa1992 2014-10-27 12:34:10

+0

我可以做任何類似的東西與字符串? – OFFLlNE 2014-10-27 15:05:00

+0

String s = PID.getText(); – cholewa1992 2014-10-27 15:08:17

0

是的,你可以使用PID.getText()來獲取文本,然後你就可以將其轉換成任何你想要的,就像這樣:

try{ 
    long id = Long.parseLong(PID.getText()); 
    String name = PNAME.getText(); 
    String description = PDESC.getText(); 
    double price = Double.parseDouble(PPRICE.getText()); 
}catch(Exception e){} 

我已經使用了試圖捕獲塊,因爲如果用戶在PID中輸入了其他內容而不是很長的話,那麼它將捕獲異常。

相關問題