对于这两个类我有点疑问?有两处不知道为什么要这么写,请帮忙指点!import java.awt.event.*;
import java.awt.*;class TestDialog extends Frame
{
private TextField tf=new TextField(10);
public TestDialog()
{
Button b1=new Button("打开模态对话框");
Button b2=new Button("打开非模态对话框");
add(tf,"North");
add(b1,"West");
add(b2,"East");
b1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
MyDialog md=new MyDialog(TestDialog.this,"模态对话框",true);
md.setInfo(tf.getText());
md.setVisible(true);
tf.setText(md.getInfo());
}
});
b2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
MyDialog md=new MyDialog(TestDialog.this,"非模态对话框",false);
md.setInfo(tf.getText());
md.setVisible(true);
// tf.setText(md.getInfo());//为什么写了这段代码点击Button2时Frame不显示TextField//为什么和button1不一样呢,这段代码不用写,写了倒是错误!//非模态对话框为什么不用写这句话?//非模态对话框不写这句话主面板倒能显示出文字,为什么写上这句话主面板上的TextField就显示不出文字来?
}
});
//下面这段代码怎么写能将主面板点击关闭后关闭?
addWindowListener(new WindowAdapter()
{
public void WindowClosing(WindowEvent e)
{
dispose();
System.exit(0);
}
});
}
public void setInfo(String strInfo)
{
tf.setText(strInfo);
}
public static void main(String []args)
{
TestDialog td=new TestDialog();
td.setSize(400,400);
td.setVisible(true);
}
}import java.awt.event.*;
import java.awt.*;
import java.awt.Dialog;public class MyDialog extends Dialog
{
private TextField tf=new TextField(10);
private String strInfo=null;
public MyDialog(Frame f,String str,boolean bo)
{
super(f,str,bo);
setBounds(0,0,200,150);
Button b1=new Button("应用");
Button b2=new Button("确定");
add(tf,"North");
add(b1,"West");
add(b2,"East");
if(this.isModal()==true)
{
b1.setEnabled(false);
}
b1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
((TestDialog)MyDialog.this.getOwner()).setInfo(tf.getText());//这段代码是什么意思?怎么和常规写得不一样呢?请仔细解释一下
}
});
b2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(isModal()==true)
{
strInfo=new String(tf.getText());
}
else
{
((TestDialog)MyDialog.this.getOwner()).setInfo(tf.getText());
}
dispose();
}
});
}
public String getInfo()
{
return strInfo;
}
public void setInfo(String strInfo)
{
tf.setText(strInfo);
}
}
import java.awt.*;class TestDialog extends Frame
{
private TextField tf=new TextField(10);
public TestDialog()
{
Button b1=new Button("打开模态对话框");
Button b2=new Button("打开非模态对话框");
add(tf,"North");
add(b1,"West");
add(b2,"East");
b1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
MyDialog md=new MyDialog(TestDialog.this,"模态对话框",true);
md.setInfo(tf.getText());
md.setVisible(true);
tf.setText(md.getInfo());
}
});
b2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
MyDialog md=new MyDialog(TestDialog.this,"非模态对话框",false);
md.setInfo(tf.getText());
md.setVisible(true);
// tf.setText(md.getInfo());//为什么写了这段代码点击Button2时Frame不显示TextField//为什么和button1不一样呢,这段代码不用写,写了倒是错误!//非模态对话框为什么不用写这句话?//非模态对话框不写这句话主面板倒能显示出文字,为什么写上这句话主面板上的TextField就显示不出文字来?
}
});
//下面这段代码怎么写能将主面板点击关闭后关闭?
addWindowListener(new WindowAdapter()
{
public void WindowClosing(WindowEvent e)
{
dispose();
System.exit(0);
}
});
}
public void setInfo(String strInfo)
{
tf.setText(strInfo);
}
public static void main(String []args)
{
TestDialog td=new TestDialog();
td.setSize(400,400);
td.setVisible(true);
}
}import java.awt.event.*;
import java.awt.*;
import java.awt.Dialog;public class MyDialog extends Dialog
{
private TextField tf=new TextField(10);
private String strInfo=null;
public MyDialog(Frame f,String str,boolean bo)
{
super(f,str,bo);
setBounds(0,0,200,150);
Button b1=new Button("应用");
Button b2=new Button("确定");
add(tf,"North");
add(b1,"West");
add(b2,"East");
if(this.isModal()==true)
{
b1.setEnabled(false);
}
b1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
((TestDialog)MyDialog.this.getOwner()).setInfo(tf.getText());//这段代码是什么意思?怎么和常规写得不一样呢?请仔细解释一下
}
});
b2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(isModal()==true)
{
strInfo=new String(tf.getText());
}
else
{
((TestDialog)MyDialog.this.getOwner()).setInfo(tf.getText());
}
dispose();
}
});
}
public String getInfo()
{
return strInfo;
}
public void setInfo(String strInfo)
{
tf.setText(strInfo);
}
}
解决方案 »
- 高分请教,关于报表开发
- application或applet怎样通过http上传文件?
- 关于访问权限修饰的问题
- 在JTree 的Root上Double Click后,如何让Root下面的孩子节点不隐藏起来,而是一直显示着
- 如何从字符窜"abc([email protected]); xyz([email protected])"中分析出有效邮件地址。
- applet连接数据库老折磨我???
- Boolean test=mybook instanceof book 是什么意思??
- 方法的调用?
- 在Jbuilder6.0中,如何用CORBA开发数据库APP!
- 求问一个关于JTextField的问题
- Java String.splite的问题
- 新手求助数据类型存储的问题
改为public void windowClosing(WindowEvent e)就可以关闭面板了(注:代码首字母应该小写)