📄
字号:
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("关闭");
add(button1);add(button2); setVisible(true);
add(button1);add(button2);
}
}
class Mydialog extends Dialog //建立对话框类。
{ Button button1,button2;
Mydialog(Frame F,String s) //构造方法。
{ super(F,s); //调用父类的Dialog(Frame,String)方法,对话框将依赖于窗口F。
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("带对话框窗口");//创建窗口。
dialog=new Mydialog(window,"我是对话框");//创建依赖于窗口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("关闭求和对话框");
item1.addActionListener(this);
item2.addActionListener(this);
menu1.add(item1);
menu1.add(item2);
menubar.add(menu1);
setMenuBar(menubar);
sumdialog=new Sumdialog(this,"求和对话框",false); //创建1个依赖于该窗口的对话框。
}
public void actionPerformed(ActionEvent e) //实现接口中的方法。
{ 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) //构造方法:
{ super(F,s,p);
button=new Button("确定");
text1=new TextField(10);
text2=new TextField(10);
text3=new TextField(10);
label1=new Label("输入加数");
label2=new Label("输入加数");
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);//将对话框作为按钮的监视器。
}
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("关闭窗口");
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(); //创建一个菜单条。
menu=new Menu("文件"); //创建1个菜单。
item1=new MenuItem("保存文件"); item2=new MenuItem("打开文件");
item1.addActionListener(this);item2.addActionListener(this);
menu.add(item1);menu.add(item2);
menubar.add(menu);setMenuBar(menubar);
//下面创建1个依赖于该窗口的保存文件对话框:
filedialog_save=new FileDialog(this,"保存文件话框",FileDialog.SAVE);
filedialog_save.setVisible(false);
//再创建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) //实现接口中的方法。
{ 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);
//当前窗口监视对话框中的3个按扭:
remind_dialog.确定.addActionListener(this);
remind_dialog.否.addActionListener(this);
remind_dialog.取消.addActionListener(this);
text=new TextArea(); //用于输入文本的文本区。
text.addTextListener(this); //监视文本区是否发生了编辑事件。
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) //如果发生过编辑事件,提示是否保存。
{remind_dialog.setVisible(true);
}
else
{System.exit(0);}
}});
}
public void actionPerformed(ActionEvent e) //实现接口中的方法。
{ if(e.getSource()==item_new)
{ new_option=1;
if(text_event==1) //如果发生过编辑事件,提示是否保存。
{remind_dialog.setVisible(true);}
else
{text.setText(null);}
}
else if(e.getSource()==item_load)
{ open_option=1;
if(text_event==1) //如果发生过编辑事件,提示是否保存。
{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) //如果发生过编辑事件,提示是否保存。
{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时表示发生过编辑事件。
}
}
public class Example16_4
{public static void main(String args[])
{new Frame_Text();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -