天天看點

java 自定義對話框

按着書寫的。。不過看懂了。。

package J;
public class Example9_20 {
  public static void main(String[] args) {
    MyWindow win=new MyWindow();
    win.setTitle("自定義對話框視窗");
    win.setBounds(600,200,300,400);
  }

}      
package J;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyWindow extends JFrame implements ActionListener{
  JButton button;
  MyDialog dialog;
  MyWindow(){
    init();
    setLayout(new FlowLayout());
    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
  void init(){
    button=new JButton("打開對話框");
    add(button,BorderLayout.NORTH);
    button.addActionListener(this);
    dialog =new MyDialog(this,"我是對話框");
    dialog.setModal(true);
  }
  public void actionPerformed(ActionEvent e){
    dialog.setVisible(true);
    String str=dialog.getTitle();
    setTitle(str);
  }
}      
package J;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyDialog extends JDialog implements ActionListener{
  JTextField input;
  JButton button;
  String title;
  MyDialog(JFrame f,String s){
    super(f,s);
    input=new JTextField(10);
    input.addActionListener(this);
    setLayout(new FlowLayout());
    add(new JLabel("輸入視窗新标題"));
    add(input);
    button=new JButton("确定");
    add(button);
    button.addActionListener(this);
    setBounds(600,260,100,150);
    setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  }
  public void actionPerformed(ActionEvent e){
    title=input.getText();
    setVisible(false);
  }
  public String getTitle(){
    return title;
  }

}