?? 第十六章例子.txt
字號:
16-例子1
import java.applet.*;
import java.awt.*;
class Dwindow extends Frame
{ Button button1,button2;
Dwindow(String s)
{ super(s);
button1=new Button("打開"); button2=new Button("關(guān)閉");
add(button1);add(button2); setVisible(true);
add(button1);add(button2);
}
}
class Mydialog extends Dialog //建立對話框類。
{ Button button1,button2;
Mydialog(Frame F,String s) //構(gòu)造方法。
{ super(F,s); //調(diào)用父類的Dialog(Frame,String)方法,對話框?qū)⒁蕾囉诖翱贔。
button1=new Button("open"); button2=new Button("close");
setLayout(new FlowLayout());setSize(90,90); setVisible(true); setModal(false);
add(button1);add(button2);
}
}
public class Example16_1 extends Applet
{ Dwindow window; Mydialog dialog; Button button;
public void init()
{ window=new Dwindow("帶對話框窗口");//創(chuàng)建窗口。
dialog=new Mydialog(window,"我是對話框");//創(chuàng)建依賴于窗口window的對話框。
button=new Button("ok");add(button);
}
}
16-例子2
import java.applet.*;import java.awt.*;
import java.awt.event.*;
class Fwindow extends Frame implements ActionListener
{ MenuBar menubar;
Sumdialog sumdialog;
Menu menu1;
MenuItem item1,item2;
Fwindow(String s)
{ super(s);
setLayout(new GridLayout(1,1));
setSize(60,70);
setBackground(Color.white);
setVisible(false);
menubar=new MenuBar();
menu1=new Menu("工具");
item1=new MenuItem("打開求和對話框");
item2=new MenuItem("關(guān)閉求和對話框");
item1.addActionListener(this);
item2.addActionListener(this);
menu1.add(item1);
menu1.add(item2);
menubar.add(menu1);
setMenuBar(menubar);
sumdialog=new Sumdialog(this,"求和對話框",false); //創(chuàng)建1個依賴于該窗口的對話框。
}
public void actionPerformed(ActionEvent e) //實現(xiàn)接口中的方法。
{ if(e.getSource()==item1)
{ sumdialog.setVisible(true);
}
else if(e.getSource()==item2)
{ sumdialog.setVisible(false);
}
}
}
class Sumdialog extends Dialog implements ActionListener//建立對話框類。
{ Button button;
TextField text1,text2,text3;
Label label1,label2;
GridLayout net;
Sumdialog(Frame F,String s,boolean p) //構(gòu)造方法:
{ super(F,s,p);
button=new Button("確定");
text1=new TextField(10);
text2=new TextField(10);
text3=new TextField(10);
label1=new Label("輸入加數(shù)");
label2=new Label("輸入加數(shù)");
net=new GridLayout(3,2);
setLayout(net);
setSize(200,100);
setVisible(false);
setModal(false);
add(label1);add(text1);
add(label2);add(text2);
add(button);add(text3);
button.addActionListener(this);//將對話框作為按鈕的監(jiān)視器。
}
public void actionPerformed(ActionEvent e)
{ double x;
if(e.getSource()==button)
{ double a,b;
a=Double.valueOf(text1.getText()).doubleValue();
b=Double.valueOf(text2.getText()).doubleValue();
x=a+b;
text3.setText(String.valueOf(x));
}
else
{}
}
}
public class Example16_2 extends Applet implements ActionListener
{ Fwindow window;
Button button1,button2;
public void init()
{ window=new Fwindow("工具窗口");button1=new Button("打開窗口");
button2=new Button("關(guān)閉窗口");
add(button1);add(button2);
button1.addActionListener(this);
button2.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{ if(e.getSource()==button1)
{ window.setVisible(true);
}
else if
(e.getSource()==button2)
{ window.setVisible(false);
}
}
}
16-例子3
import java.awt.*;import java.awt.event.*;
public class Example16_3
{public static void main(String args[])
{ Frame_FileDialog f=new Frame_FileDialog(); }
}
class Frame_FileDialog extends Frame implements ActionListener
{ FileDialog filedialog_save,filedialog_load;//聲明2個文件對話框
MenuBar menubar;Menu menu;MenuItem item1,item2;
Frame_FileDialog()
{ super("帶文件對話框的窗口");
setSize(60,70);
setVisible(true);
menubar=new MenuBar(); //創(chuàng)建一個菜單條。
menu=new Menu("文件"); //創(chuàng)建1個菜單。
item1=new MenuItem("保存文件"); item2=new MenuItem("打開文件");
item1.addActionListener(this);item2.addActionListener(this);
menu.add(item1);menu.add(item2);
menubar.add(menu);setMenuBar(menubar);
//下面創(chuàng)建1個依賴于該窗口的保存文件對話框:
filedialog_save=new FileDialog(this,"保存文件話框",FileDialog.SAVE);
filedialog_save.setVisible(false);
//再創(chuàng)建1個依賴于該窗口的打開文件對話框:
filedialog_load=new FileDialog(this,"打開文件話框",FileDialog.LOAD);
filedialog_load.setVisible(false);
filedialog_save.addWindowListener(new WindowAdapter()//對話框增加適配器。
{public void windowClosing(WindowEvent e)
{filedialog_save.setVisible(false);}
});
filedialog_load.addWindowListener(new WindowAdapter()//對話框增加適配器。
{public void windowClosing(WindowEvent e)
{filedialog_load.setVisible(false);}
});
addWindowListener(new WindowAdapter() //窗口增加適配器。
{public void windowClosing(WindowEvent e)
{setVisible(false);System.exit(0);}
});
}
public void actionPerformed(ActionEvent e) //實現(xiàn)接口中的方法。
{ if(e.getSource()==item1)
{ filedialog_save.setVisible(true);
}
else if(e.getSource()==item2)
{ filedialog_load.setVisible(true);
}
}
}
16-例子4
import java.awt.*;import java.awt.event.*;
class Remind_Dialog extends Dialog
{ Button 確定=null,否=null,取消=null;
Remind_Dialog(Frame f,String s,boolean b)
{super(f,s,b);
setSize(200,100);setVisible(false);
確定=new Button("Yes");否=new Button("No");取消=new Button("quit");
setLayout(new FlowLayout());
add(確定); add(否); add(取消);
}
}
class Frame_Text extends Frame implements ActionListener,TextListener
{ Remind_Dialog remind_dialog=null; //提示保存文件對話框。
FileDialog filedialog_save=null,
filedialog_load=null;//聲明2個文件對話筐。
MenuBar menubar;Menu menu;
MenuItem item_new,item_load,item_save,item_exit;
TextArea text=null;
//控制操的變量:
int text_event=0,new_option=0,open_option=0,exit_option=0,window_close=0;
Frame_Text()
{ super("帶對話框的窗口");
setSize(60,70);setVisible(true);
menubar=new MenuBar();
menu=new Menu("文件");
item_new=new MenuItem("新建"); item_load=new MenuItem("打開");
item_save=new MenuItem("保存"); item_exit=new MenuItem("退出");
item_new.addActionListener(this);item_load.addActionListener(this);
item_save.addActionListener(this);
item_exit.addActionListener(this);
remind_dialog=new Remind_Dialog(this,"提示保存文件對話框",true);
remind_dialog.setVisible(false);
//當(dāng)前窗口監(jiān)視對話框中的3個按扭:
remind_dialog.確定.addActionListener(this);
remind_dialog.否.addActionListener(this);
remind_dialog.取消.addActionListener(this);
text=new TextArea(); //用于輸入文本的文本區(qū)。
text.addTextListener(this); //監(jiān)視文本區(qū)是否發(fā)生了編輯事件。
menu.add(item_new);menu.add(item_load);
menu.add(item_save);menu.add(item_exit);
menubar.add(menu);setMenuBar(menubar);
add(text,"Center");
filedialog_save=new FileDialog(this,"保存文件話框",FileDialog.SAVE);
filedialog_save.setVisible(false);
filedialog_load=new FileDialog(this,"打開文件話框",FileDialog.LOAD);
filedialog_load.setVisible(false);
filedialog_save.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{filedialog_save.setVisible(false);}
});
filedialog_load.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{filedialog_load.setVisible(false);}
});
remind_dialog.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{remind_dialog.setVisible(false);}
});
addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{window_close=1;
if(text_event==1) //如果發(fā)生過編輯事件,提示是否保存。
{remind_dialog.setVisible(true);
}
else
{System.exit(0);}
}});
}
public void actionPerformed(ActionEvent e) //實現(xiàn)接口中的方法。
{ if(e.getSource()==item_new)
{ new_option=1;
if(text_event==1) //如果發(fā)生過編輯事件,提示是否保存。
{remind_dialog.setVisible(true);}
else
{text.setText(null);}
}
else if(e.getSource()==item_load)
{ open_option=1;
if(text_event==1) //如果發(fā)生過編輯事件,提示是否保存。
{remind_dialog.setVisible(true);}
else{filedialog_load.setVisible(true);}
}
else if(e.getSource()==item_save)
{filedialog_save.setVisible(true);text_event=0;
}
else if(e.getSource()==item_exit)
{ exit_option=1;
if(text_event==1) //如果發(fā)生過編輯事件,提示是否保存。
{remind_dialog.setVisible(true);}
else
{System.exit(0);
}
}
else if(e.getSource()==remind_dialog.確定)
{ filedialog_save.setVisible(true);
remind_dialog.setVisible(false);
exit_option=open_option=new_option=0;
text_event=0;window_close=0;
}
else if(e.getSource()==remind_dialog.否)
{ if(exit_option==1)
{System.exit(0);
}
else if((new_option==1)&&(text_event==1))
{text.setText(null);text_event=0;
filedialog_load.setVisible(false);
remind_dialog.setVisible(false);
}
else if((open_option==1)&&(text_event==1))
{text.setText(null);
filedialog_load.setVisible(true);
remind_dialog.setVisible(false);
}
else if((window_close==1)&&(text_event==1))
{System.exit(0);
}
exit_option=open_option=new_option=0;
text_event=0;window_close=0;
}
else if(e.getSource()==remind_dialog.取消)
{ if((exit_option==1)&&(text_event==1))
{remind_dialog.setVisible(false);
}
else if((new_option==1)&&(text_event==1))
{ remind_dialog.setVisible(false);
}
else if((open_option==1)&&(text_event==1))
{remind_dialog.setVisible(false);
}
else if((window_close==1)&&(text_event==1))
{ remind_dialog.setVisible(false);
}
exit_option=open_option=new_option=0;
text_event=1;window_close=0;
}
}
public void textValueChanged(TextEvent e)
{text_event=1; //text_event等于1時表示發(fā)生過編輯事件。
}
}
public class Example16_4
{public static void main(String args[])
{new Frame_Text();
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -