GUI Graphical User Interface
用對話框 dialog boxes (dialog) 顯示資料.
通常是用來顯示重要訊息用.
JOptionPane 是一個已經有簡略且完整的 dialog 類別
JOptionPane 是 javax.swing套件中的類別.
javax.swing套件中包含了許多建構 GUI 應用程式的類別.
//Fig. 3.17:Dialog1
import javax.swing.JOptionPane; //import class JOptionPane
public class Dialog1{
public static void main(String args[]){
JOptionPane.showMessageDialog(null,"AS");
} //end main
} // end Dialog1
JOptionPane類別中的showMessageDialog方法是一個(static method),
所以User不用自行呼叫函式,
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
現在分兩部分, 輸入跟輸出分開,
輸入畫面稱為 input dialog 輸入對話框, 讓User輸入資料.
JOptionPane類別的 showInputDialog() 方法會顯示使用者輸入文字的欄位,
而 showInputDialog() 的引數就是要在對話框中顯示的提示詞,
一般用來告知使用者要輸入的資料.
其中在對話框中 User 所輸入的就是一串字元, 所以不是整數歐 !
然後以字串方式傳回, 並儲存在 name 變數中.
其中如果最後按下的鍵為 取消 Cancel button 則會以 null 回傳.
之後用 String 類別的 format() 靜態方法,
回傳經過格式化的字串, 而非顯示在 cmd 中.
//Fig. 3.17:NameDialog
import javax.swing.JOptionPane;
public class NameDialog{
public static void main(String args[]){
String name = JOptionPane.showInputDialog("Name: ");
System.out.println("name: "+name);
String message = String.format("Welcome, %s, to me",name);
System.out.println("message: "+message);
JOptionPane.showMessageDialog(null,message);
}
}
----------------------------------------------------------------------------------------------------
在輸入時打入 HW 顯示畫面
在裡面加了兩行 System.out.,println
name: GGGG
message: Welcome, GGGG, to me
----------------------------------------------------------------------------------------------------
如果把
String message = String.format("Welcome, %s, to me",name);
換成
int message = String.format("Welcome, %s, to me",name);
就會跑出例外出來
NameDialog.java:7: incompatible types
found : java.lang.String
required: int
int num = JOptionPane.showInputDialog("num: ");
^
Because showInputDialog just return type of string.
所以要利用轉型, 把字串轉型成整數型態,
Integer.parseInt(String s)
parseInt() 方法是一個 String 類別的靜態方法,
其中如果給了一個不是整數的字串,
就會發生例外錯誤.
以下是小小修改的範例:
import javax.swing.JOptionPane;
public class NameDialog{
public static void main(String args[]){
String name = JOptionPane.showInputDialog("Name: ");
System.out.println("name: "+name);
String old = JOptionPane.showInputDialog("oldnum : ");
int oldnum = Integer.parseInt(old);
System.out.println("oldnum: "+oldnum);
String message = String.format("Welcome, %s, to me\n You are %d year old",name,oldnum);
System.out.println("message: "+message);
JOptionPane.showMessageDialog(null,message);
}
}
如果 old 不是給整數, parseInt() 會跳出例外訊息.
name: A
Exception in thread "main" java.lang.NumberFormatException: For input string: "A
"
at java.lang.NumberFormatException.forInputString(NumberFormatException.
java:48)
at java.lang.Integer.parseInt(Integer.java:449)
at java.lang.Integer.parseInt(Integer.java:499)
at NameDialog.main(NameDialog.java:8)
參考Java 程式設計藝術
沒有留言:
張貼留言