2012-06-17 101 views
3

我是新來的JAVA,我想從一個JTextField輸入轉換爲一個整數,我嘗試了大量的選項,但沒有工作,日食總是給我一個錯誤,錯誤對我沒有意義。轉換JTextField輸入爲一個整數

import java.awt.Graphics; import java.awt.Color;

public class circle extends Shape{ 

public int x; 
public int y; 
public int Radius; 

public circle (int Radius, int x, int y, Color c){ 
    super(c); 
    this.x = x; 
    this.y = y; 
    this.Radius = Radius; 
} 
    public void draw(Graphics g){ 
     g.setColor(super.getColor()); 
     g.fillOval(x-Radius, y-Radius, Radius * 2, Radius * 2); 
    } 
} 
+1

你有什麼問題? 'Integer.parseInt(stringVariable)'應該將'String'轉換爲'int'。我看到你正在使用它。 –

+0

你正在收到什麼錯誤? –

+1

'注意:此代碼在此之前不編譯,但現在顯然不會編譯,因爲它是一團糟。':解決方案是「解開」它。修復當然的錯誤。如果有什麼你不知道如何解決,那麼你告訴我們有關錯誤,因爲我們無法讀懂頭腦。 –

回答

10

在地方:

JTextField f1 = new JTextField("-5"); 

//xaxis1 = Integer.parseInt(f1); 

試試這個:

JTextField f1 = new JTextField("-5"); 
String text = f1.getText(); 
int xaxis1 = Integer.parseInt(text); 

無法解析TextFieldInteger,但你可以解析包含 - 文本。

+0

完成。非常感謝,它工作得很好。 – Matthew

2

您必須立即躍上腦海兩個主要錯誤:

  • 首先你要解析的JTextField本身,而不是文本其持有(如dantuch指出 - 1+給他) 。
  • 接下來,即使您要成功解析由JTextField保存的文本,在您的程序中的這一點上執行此操作也不會產生效果,因爲您在創建JTextField時會這樣做,並且不會提供用戶有機會改變這些字段的值。

一個更好的解決辦法是解析由JTextField中持有的文字,再次爲dantuch建議,但在某種或許已經由一個JButton推觸發ActionListener的監聽器這樣做。

1

我已經實現了基於JFormattedTextField的數字字段。

它們還支持最小值和最大值。

也許你發現它們非常有用(庫是開源的):

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JRealNumberField.html

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JDoubleField.html

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JFloatField.html

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JLocalizedRealNumberField.html

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JLocalizedDoubleField.html

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JLocalizedFloatField.html

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JWholeNumberField.html

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JByteField.html

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JIntegerField.html

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JLongField.html

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JShortField.html

教程:

http://softsmithy.sourceforge.net/lib/docs/tutorial/swing/number/index.html

首頁:

http://www.softsmithy.org

下載:

http://sourceforge.net/projects/softsmithy/files/softsmithy/

Maven的:

<dependency> 
    <groupId>org.softsmithy.lib</groupId> 
    <artifactId>lib-core</artifactId> 
    <version>0.1</version> 
</dependency> 
0

您需要解析TextField的價值:

int i = Integer.parseInt("-10"); 

同樣

double d = Double.parseDouble("-10.0"); 

等等