Java成员方法getinfo_我想问下程序中的setInfo()和getInfo()它们怎调用的??

我想问下程序中的setInfo()和getInfo()它们怎调用的??

//程序1

package myprojects.testdialog;

import java.awt.*;

import java.awt.event.*;

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,"Center");//将b1放置到中间

add(b2,"East"); //b2放到东面

b1.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{//以模态的方式打开对话框

MyDialog dlg = new MyDialog(TestDialog.this,"modal dialog",true);

// TestDialog.this调用外部类TestDialog

//假设对话框名称为MyDialog(拥有此对话框的拥有者,标题,T/F是否为模态对话框)

dlg.setInfo(tf.getText()); //设置子窗口打开时显示与主窗口一样的信息

//设置它的信息,,setInfo好像是用于Dialog窗口中的

dlg.setVisible(true);

//显示窗口

tf.setText(dlg.getInfo(/*方法用于返回关闭模态框后返回数据*/));

//设置到主框中

}

}

);

b2.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{//以非模态的方式打开对话框

MyDialog dlg = new MyDialog(TestDialog.this,"modeless dialog",false);

// TestDialog.this调用外部类TestDialog

//假设对话框名称为MyDialog(拥有此对话框的拥有者,标题,T/F是否为模态对话框)

dlg.setInfo(tf.getText());

//设置它的信息

dlg.setVisible(true);

//显示窗口

//tf.setText(dlg.getInfo()); 因为是非模态它不等待子窗口关后才运行,而会立即运行

//设置到主框中

}

}

);

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[]) {

System.out.println("Starting TestDialog...");

TestDialog mainFrame = new TestDialog();

mainFrame.setSize(400, 400);

mainFrame.setTitle("TestDialog");

mainFrame.setVisible(true);

}

}

/*

*运行过程:

*创好主窗口后,在文本标签设置一个tf.getText()利用它为子窗口设置第一次打开子窗口时显示的信息,

*调用方法进入MyDialog这个类设定子窗口里的内容

*/

//程序2

package myprojects.testdialog;

import java.awt.*; //为TextField

import java.awt.Dialog;

import java.awt.event.*;//为ActionListener

public class MyDialog extends Dialog {

private TextField tf = new TextField(10);

private String strInfo = null;

//拥有者为Frame owner,标题title

//定义一个构造函数,将它传递给父类Dialog

public MyDialog(Frame owner,String title,boolean modal)

{

super(owner,title,modal);

setBounds(0,0,200,150);

//设置窗口大小,还可设置窗口位置

Button b1 = new Button("应用");

Button b2 = new Button("确定");

this.add(tf,"North");

this.add(b1,"Center");

this.add(b2,"East");

if(this.isModal() == true) //判断是否为模态对话框

{

b1.setEnabled(false);

//设定b1不可用

}

b1.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e) //方法

{

((TestDialog)getOwner(/*得到它的拥有者*/)).setInfo(tf.getText());

//返回Owner,再返回主窗口

}

});

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(/*取出当前标签内容*/));

//用getOwner()把当前标签内容返回到主窗口标签

//主窗口有一个方法setInfo()它自己会调用这个方法自己设定把当前标签内容设到主窗口

}

dispose();

}

});

}

public String getInfo()

{

return strInfo;

}

public void setInfo(String strInfo)

{

tf.setText(strInfo);

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值