父类有无参构造器吗?或者没有构造器。
否则不能调用super(),因为它不存在呀。
你的窗体问题用内部类形式实现即可。

解决方案 »

  1.   

    父类是jDialog.
    public MyDialog extends JDialog
    {
      MyDialog(Frame f)
      {
         JbInit(f);
       }
    }void JbInit(Frame f)
    {
      super(f);
      ...
     }
    出现error:Method required,but value found
    不知为何?
      

  2.   

    它认为这里你应该写super.method();
    super()
    只能在构造函数里边调用,而且必须是第一句
      

  3.   

    我把super(f)放到构造函数里去也不行啊
    public MyDialog extends JDialog
    {
      MyDialog(Frame f)
      {
         super(f);
         JbInit(f);
       }
    }
      

  4.   

    应该没有问题,这样写最好把构造函数写成public的另外,把你的代码贴出来看看吧
      

  5.   

    package tictac;import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;/**
     * <p>Title: </p>
     * <p>Description: </p>
     * <p>Copyright: Copyright (c) 2002</p>
     * <p>Company: </p>
     * @author unascribed
     * @version 1.0
     */public class MyDialog extends JDialog
    {
      BorderLayout borderLayout1 = new BorderLayout();
      JPanel jPanel1 = new JPanel();
      JPanel jPanel2 = new JPanel();
      JButton jButton1 = new JButton();
      JPanel jPanel3 = new JPanel();
      JLabel jLabel1 = new JLabel();
      JLabel jLabel2 = new JLabel();
      BorderLayout borderLayout2 = new BorderLayout();  public MyDialog(JFrame p)
      {
        try
        {
         // super(p);//问题就出在这里,帮我看看吧
          jbInit(p);
        }
        catch(Exception e)
        {
          e.printStackTrace();
        }
      }
      private void jbInit(JFrame p) throws Exception
      {
        //super(p);
        this.getContentPane().setLayout(borderLayout1);
        this.setSize(150,150);
        this.setResizable(false);
        this.setTitle("game over");
        setVisible(false);
        setModal(true);
        jButton1.setText("ok");
        jButton1.addMouseListener(new MyDialog_jButton1_mouseAdapter(this));
        jLabel1.setAlignmentX((float) 12.0);
        jLabel1.setHorizontalAlignment(SwingConstants.CENTER);
        jLabel1.setText("hello");
        jLabel2.setFont(new java.awt.Font("Dialog", 0, 18));
        jPanel3.setLayout(borderLayout2);
        this.addWindowListener(new MyDialog_this_windowAdapter(this));
        this.getContentPane().add(jPanel1, BorderLayout.NORTH);
        jPanel1.add(jLabel2, null);
        this.getContentPane().add(jPanel2,  BorderLayout.SOUTH);
        jPanel2.add(jButton1, null);
        this.getContentPane().add(jPanel3,  BorderLayout.CENTER);
        jPanel3.add(jLabel1, BorderLayout.CENTER);
      }  void this_windowClosing(WindowEvent e)
      {
        setVisible(false);
      }  void jButton1_mousePressed(MouseEvent e)
      {
        setVisible(false);
      }
    }class MyDialog_this_windowAdapter extends java.awt.event.WindowAdapter
    {
      MyDialog adaptee;  MyDialog_this_windowAdapter(MyDialog adaptee)
      {
        this.adaptee = adaptee;
      }
      public void windowClosing(WindowEvent e)
      {
        adaptee.this_windowClosing(e);
      }
    }class MyDialog_jButton1_mouseAdapter extends java.awt.event.MouseAdapter
    {
      MyDialog adaptee;  MyDialog_jButton1_mouseAdapter(MyDialog adaptee)
      {
        this.adaptee = adaptee;
      }
      public void mousePressed(MouseEvent e)
      {
        adaptee.jButton1_mousePressed(e);
      }
    }
      

  6.   

    super(p);//问题就出在这里,帮我看看吧放在try前,一定要放在构造函数的第一句。