这是为什么
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;class MyDialog extends JDialog {
private JLabel label = new JLabel("请输入姓名:");
private JTextField textField = new JTextField(10);
private JButton button = new JButton("OK");
public MyDialog(JFrame parent) {
super(parent, "提示", true);
Container contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
contentPane.add(label);
contentPane.add(textField);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dispose();
}
});
contentPane.add(button);
pack();
}
public String getText() {return textField.getText();}
}public class DialogDemo extends JFrame {
private JButton button = new JButton("提交");
private MyDialog dialog = new MyDialog(this);
private TextField textField1 = new TextField(10);
public DialogDemo (String title) {
super(title);
textField1.setEditable(false);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dialog.setVisible(true);
textField1.setText(dialog.getText());
}
});
Container contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
contentPane.add(button);
contentPane.add(textField1);
setSize(500,300);
setVisible(true);
setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE);
}
public static void main(String args[]) {
new DialogDemo("DialogDemo");
}
}textField1.setText(dialog.getText());作为actionPerformed(ActionEvent e)的内容被添加到DialogDemo的button中,而MyDialog的button里添加的ActionListener(new ActionListener() )中的actionPerformed(ActionEvent e) 里只有一个释放dispose()方法,为什么把MyDialog关闭或按MyDialog的button却可以将信息显示到DialogDemo的textField1中
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;class MyDialog extends JDialog {
private JLabel label = new JLabel("请输入姓名:");
private JTextField textField = new JTextField(10);
private JButton button = new JButton("OK");
public MyDialog(JFrame parent) {
super(parent, "提示", true);
Container contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
contentPane.add(label);
contentPane.add(textField);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dispose();
}
});
contentPane.add(button);
pack();
}
public String getText() {return textField.getText();}
}public class DialogDemo extends JFrame {
private JButton button = new JButton("提交");
private MyDialog dialog = new MyDialog(this);
private TextField textField1 = new TextField(10);
public DialogDemo (String title) {
super(title);
textField1.setEditable(false);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dialog.setVisible(true);
textField1.setText(dialog.getText());
}
});
Container contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
contentPane.add(button);
contentPane.add(textField1);
setSize(500,300);
setVisible(true);
setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE);
}
public static void main(String args[]) {
new DialogDemo("DialogDemo");
}
}textField1.setText(dialog.getText());作为actionPerformed(ActionEvent e)的内容被添加到DialogDemo的button中,而MyDialog的button里添加的ActionListener(new ActionListener() )中的actionPerformed(ActionEvent e) 里只有一个释放dispose()方法,为什么把MyDialog关闭或按MyDialog的button却可以将信息显示到DialogDemo的textField1中
textField1.setText(dialog.getText());
不清楚这个针对的是哪个对象?本来写到action中应该是action被释放掉了