JFrame和JDialog是两个不同的类,但属于同一个工程

解决方案 »

  1.   

    你自己扩展一个JDialog,然后在实例这个扩展的JDialog时把JFrame的引用传进去,然后在JDialog的按钮事件中更改JFrame的标签值。
      

  2.   

    怎么扩展一个JDialog,能说的具体点吗?????
      

  3.   

    Frame2.javaimport javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;public class Frame2 extends JFrame {
      BorderLayout borderLayout1 = new BorderLayout();
      JLabel jLabel1 = new JLabel();
      JButton jButton1 = new JButton();  public Frame2() {
        try {
          jbInit();
          setSize(300,200);
          setVisible(true);
        }
        catch(Exception e) {
          e.printStackTrace();
        }
      }
      public static void main(String[] args) {
        Frame2 frame2 = new Frame2();
      }
      private void jbInit() throws Exception {
        jLabel1.setText("jLabel1");
        jLabel1.setSize(40,30);
        this.getContentPane().setLayout(borderLayout1);
        jButton1.setText("打开Dialog");
        jButton1.addActionListener(new Frame2_jButton1_actionAdapter(this));
        this.getContentPane().add(jLabel1, BorderLayout.NORTH);
        this.getContentPane().add(jButton1, BorderLayout.SOUTH);
      }  void jButton1_actionPerformed(ActionEvent e) {
        Dialog1 d1=new Dialog1(jLabel1,"Dialog",true);
        d1.show();
      }
    }class Frame2_jButton1_actionAdapter implements java.awt.event.ActionListener {
      Frame2 adaptee;  Frame2_jButton1_actionAdapter(Frame2 adaptee) {
        this.adaptee = adaptee;
      }
      public void actionPerformed(ActionEvent e) {
        adaptee.jButton1_actionPerformed(e);
      }
    }
      

  4.   

    扩展的DialogDialog1.javaimport java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;public class Dialog1 extends JDialog {
      JPanel panel1 = new JPanel();
      BorderLayout borderLayout1 = new BorderLayout();
      JButton jButton1 = new JButton();
      JLabel jl;
      public Dialog1(JLabel label, String title, boolean modal) {
        try {
          jl=label;
          jbInit();
          setSize(300,200);
        }
        catch(Exception ex) {
          ex.printStackTrace();
        }
      }  public Dialog1() {
        this(null, "", false);
      }
      private void jbInit() throws Exception {
        panel1.setLayout(borderLayout1);
        this.setEnabled(false);
        this.setModal(true);
        jButton1.setText("改变Frame标签");
        jButton1.addActionListener(new Dialog1_jButton1_actionAdapter(this));
        jButton1.setSize(40,20);
        getContentPane().add(panel1);
        panel1.add(jButton1, BorderLayout.NORTH);
      }  void jButton1_actionPerformed(ActionEvent e) {
        jl.setText("我变了哟");
      }
    }class Dialog1_jButton1_actionAdapter implements java.awt.event.ActionListener {
      Dialog1 adaptee;  Dialog1_jButton1_actionAdapter(Dialog1 adaptee) {
        this.adaptee = adaptee;
      }
      public void actionPerformed(ActionEvent e) {
        adaptee.jButton1_actionPerformed(e);
      }
    }