Jdialog

對話框(Jdialog)與框架(JFrame)有一些相似,但它一般是一個臨時的視窗,主要用於顯示提示信息或接受用戶輸入。

所以,在對話框中一般不需要選單條,也不需要改變視窗大小。此外,在對話框出現時,可以設定禁止其他視窗的輸入,直到這個對話框被關閉。對話框是由 JDialog 類實現的,JDialog 類的構造方法有多種:
JDialog();
JDialog(Dialog owner);
JDialog(Dialog owner,boolean modal);
JDialog(Dialog owner,String title);
JDialog(Dialog owner,String title,boolean modal);
JDialog(Dialog owner,String title,boolean modal,GraphicsConfiguration gc);
JDialog(Frame owner);
JDialog(Frame owner,boolean modal);
JDialog(Frame owner,String title);
JDialog(Frame owner,String title,boolean modal);
JDialog(Frame owner,String title,boolean modal,GraphicsConfiguration gc);
其中 Frame 類型的參數表示對話框的擁有者,boolean 類型參數用於控制對話框的工作方式。如果為true,則對話框為可視時,其他構件不能接受用戶的輸入,此時的對話框稱為靜態的;如果為false,則對話框和所屬視窗可以互相切換,彼此之間沒有順序上的聯繫。String類型參數作為對話框的標題,在構造對話框之後,就可以添加其他的構件。
對話框使用示例:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class JDialogDemo extends JFrame implements ActionListener{
public JDialogDemo(){
Container contentPane=this.getContentPane();
JButton jButton1=new JButton("顯示對話框");
jButton1.addActionListener(this);
contentPane.add(jButton1);
this.setTitle("JDialogDemo");
this.setSize(300,300);
this.setLocation(400,400);
this.setVisible(true);
}
/* 回響窗體的按鈕事件 */
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("顯示對話框")){
HelloDialog hw=new HelloDialog(this);
}
}
class HelloDialog implements ActionListener{
JDialog jDialog1=null; //創建一個空的對話框對象
HelloDialog(JFrame jFrame){
/* 初始化jDialog1
* 指定對話框的擁有者為jFrame,標題為"Dialog",當對話框為可視時,其他構件不能
* 接受用戶的輸入(靜態對話框) */
jDialog1=new JDialog(jFrame,"Dialog",true);
//創建一個按鈕對象,該對象被添加到對話框中
JButton jButton1=new JButton("關閉");
jButton1.addActionListener(this);
//將"關閉"按鈕對象添加至對話框容器中
jDialog1.getContentPane().add(jButton1);
/* 設定對話框的初始大小 */
jDialog1.setSize(80,80);
/* 設定對話框初始顯示在螢幕當中的位置 */
jDialog1.setLocation(450,450);
/* 設定對話框為可見(前提是生成了HelloDialog對象) */
jDialog1.setVisible(true);
}
//回響對話框中的按鈕事件
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("關閉")){
// 以下語句等價於jDialog1.setVisible(false);
/* public void dispose()
* 釋放由此 Window、其子組件及其擁有的所有子組件所使用的所有本機螢幕資源。
* 即這些 Component 的資源將被破壞,它們使用的所有記憶體都將返回到作業系統,
* 並將它們標記為不可顯示。 */
jDialog1.dispose();
}
}
}
public static void main(String[] args){
JDialogDemo test=new JDialogDemo();
}
}

相關詞條

熱門詞條

聯絡我們