- 论坛徽章:
- 0
|
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Text{
private JFrame jf1,jf2;
private JButton b1,b2;
private JTextArea jta1,jta2;
private JDialog jd;
private JScrollPane jsp1,jsp2;
public Text(){
jf1=new JFrame("Text" ;
jf2=new JFrame("Frame" ;
b1=new JButton("Frame" ;
b2=new JButton("Dialog" ;
jta1=new JTextArea(20,15);
jta2=new JTextArea(20,15);
jta1.setEditable(false);
jta2.setEditable(false);
jsp1=new JScrollPane(jta1);
jsp2=new JScrollPane(jta2);
jd=new JDialog(jf1,"Dialog",true);
}
public void creatFrame(){
jf1.getContentPane().setLayout(new GridLayout(1,2));
jf1.getContentPane().add(b1);
jf1.getContentPane().add(b2);
b1.addMouseListener(new MouseAdapter(){
public void mouseReleased(MouseEvent e){
echoFrame();
jta1.setText(jta1.getText()+"Hello Frame!" ;
}
});
b2.addMouseListener(new MouseAdapter(){
public void mouseReleased(MouseEvent e){
jta2.setText(jta2.getText()+"Hello Dialog!" ;
echoDialog();
}
});
jf1.setSize(150,200);
jf1.setVisible(true);
jf1.pack();
}
public void echoFrame(){
jf2.getContentPane().add(jsp1);
jf2.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
jta1.setText("" ;
jf2.dispose();
}
});
jf2.setSize(90,90);
jf2.setVisible(true);
jf2.pack();
}
public void echoDialog(){
jd.getContentPane().add(jsp2);
jd.addWindowListener(new WindowAdapter(){
public void windownClosing(WindowEvent e){
jta2.setText("" ;
jd.dispose();
}
});
jd.setSize(150,90);
jd.setVisible(true);
jd.pack();
}
public static void main(String args[]){
Text t=new Text();
t.creatFrame();
}
}
当按Frame按钮的时候,产生一个JFrame 里面的有一句话“Hello Frame!”
关闭这个JFrame后再按这个按钮依然是这样的情况
但是当你按Dialog按钮的时候 问题出现了,第一次产生一个JDialog里面有一句话“Hello Dialog!”但是当你关闭这个Dialog后再看里面就是“Hello Dialog!Hello Dialog!”两句话了,但是我在程序里已经写明了关闭Dialog时将那个TextArea设置为空啊!而且在设置Dialog里的TextArea必须要setText,然后再产生窗口,不象Frame那样,顺序无所谓,请高手解释一下原因! |
|