package com.yzb.GUI;
import java.awt.Button;
import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class TestDialog extends Frame {
private TextField tf = new TextField("www.baidu.com");
public TestDialog(){
Button b1 = new Button("打开模态窗口");
Button b2 = new Button("打开非模态窗口");
add(tf,"North");
add(b1,"West");
add(b2,"East");
b1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
MyDialog md = new MyDialog(TestDialog.this, "模态窗口", true);
md.setInfo(tf.getText());
md.setVisible(true);
tf.setText(md.getInfo());
}
});
b2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
MyDialog md = new MyDialog(TestDialog.this, "非模态窗口", false);
md.setInfo(tf.getText());
md.setVisible(true);
}
});
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
super.windowClosing(e);
dispose();
System.exit(0);
}
});
}
public static void main(String[] args) {
// TODO Auto-generated method stub
TestDialog td = new TestDialog();
td.setSize(500, 500);
td.setTitle("TestDialog");
td.setVisible(true);
}
/*public void setInfo(String s) {
// TODO Auto-generated method stub
tf.setText(s);
}*/
public void setInfo(String text) {
// TODO Auto-generated method stub
tf.setText(text);
}
}
package com.yzb.GUI;
import java.awt.Button;
import java.awt.Dialog;
import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class MyDialog extends Dialog {
private TextField tf = new TextField();
private String s = null;
Button b1 = new Button("应用");
Button b2 = new Button("确定");
MyDialog(Frame owner,String title,boolean modal){
super(owner,title,modal);
add(tf,"North");
add(b1,"West");
add(b2,"East");
setBounds(100,100,300, 300);
if(modal == true){
b1.setEnabled(false);
}
b1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
((TestDialog)getOwner()).setInfo(tf.getText());
}
});
b2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if(isModal() == true){
s = new String(tf.getText());
}else{
((TestDialog)getOwner()).setInfo(tf.getText());
}
dispose();
}
});
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
super.windowClosing(e);
dispose();
}
});
}
public void setInfo(String s) {
// TODO Auto-generated method stub
tf.setText(s);
}
public String getInfo() {
// TODO Auto-generated method stub
return s;
}
}
程序运行没问题。但是为搞不明白加个if判断是为什么,我们要那个String s 是干什么用的,getText()的返回值是个String 类型我们为什么要输入一个text,还有为什么要在我们Frame里设置Dialog的显示,如果在Dialog里面自己写setVisable()就不能关闭dialog,难道是我的MyEclipse有问题?
|
|