2010-06-25 30 views
7

Tôi đang cố gắng thực hiện một JOptionPane có được một đầu vào và gán nó vào một int nhưng tôi nhận được một số vấn đề với các loại biến.JOptionPane Nhập vào int

tôi đang cố gắng một cái gì đó như thế này:

Int ans = (Integer) JOptionPane.showInputDialog(frame, 
      "Text", 
      JOptionPane.INFORMATION_MESSAGE, 
      null, 
      null, 
      "[sample text to help input]"); 

Nhưng tôi nhận được:

Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot 
be cast to java.lang.Integer 

Những âm thanh logic nêu ra, tôi không thể nghĩ ra một cách khác để thực hiện điều này.

Cảm ơn trước

Trả lời

6

Đơn giản chỉ cần sử dụng:

int ans = Integer.parseInt(JOptionPane.showInputDialog(frame, 
     "Text", 
     JOptionPane.INFORMATION_MESSAGE, 
     null, 
     null, 
     "[sample text to help input]")); 

Bạn không thể cast một String một int, nhưng bạn có thể chuyển đổi nó bằng cách sử Integer.parseInt(string).

+0

Hmm ... có vẻ như tôi cũng cần phải thêm int ans = Integer.parseInt (JOptionPane.showInputDialog (khung hình, "Văn bản", JOptionPane.INFORMATION_MESSAGE, null, rỗng , "[văn bản mẫu để trợ giúp nhập liệu]"). ToString()); – kxk

+0

@devil Nếu bạn sử dụng đúng dạng 'showinputdialog' bạn sẽ không cần phải làm điều đó. Nhưng, bạn đúng trong một số trường hợp. – jjnguy

+0

Tôi hiểu rồi. Nếu tôi có thể hỏi một điều nữa, là có một cách, sử dụng một vòng lặp có thể, để kiểm tra xem đầu vào được đưa ra thực sự là một số nguyên hay không? Sth như: ... làm {ans = JOptionPane.showInputDialog (...)} cho đến ans = integer? – kxk

4

Điều này vì đầu vào mà người dùng chèn vào JOptionPaneString và nó được lưu trữ và trả lại dưới dạng String.

Java không thể chuyển đổi giữa các chuỗi và số của chính nó, bạn phải sử dụng chức năng cụ thể, chỉ cần sử dụng:

int ans = Integer.parseInt(JOptionPane.showInputDialog(...)) 
+0

Tôi hiểu, cảm ơn bạn! – kxk

0

Xin lưu ý rằng Integer.parseInt ném một NumberFormatException nếu chuỗi thông qua không chứa được phân tách chuỗi.

0
// sample code for addition using JOptionPane 

import javax.swing.JOptionPane; 

public class Addition { 

    public static void main(String[] args) { 

     String firstNumber = JOptionPane.showInputDialog("Input <First Integer>"); 

     String secondNumber = JOptionPane.showInputDialog("Input <Second Integer>"); 

     int num1 = Integer.parseInt(firstNumber); 
     int num2 = Integer.parseInt(secondNumber); 
     int sum = num1 + num2; 
     JOptionPane.showMessageDialog(null, "Sum is" + sum, "Sum of two Integers", JOptionPane.PLAIN_MESSAGE); 
    } 
} 
0
String String_firstNumber = JOptionPane.showInputDialog("Input Semisecond"); 
int Int_firstNumber = Integer.parseInt(firstNumber); 

Bây giờ Int_firstnumber của bạn có chứa giá trị số nguyên của String_fristNumber.

hy vọng nó giúp