dialog = new GameOverDialog(DialogFrame.this);
//因为类GameOverDialog 不是类 DialogFrame 的inner class,所以你不可以这样引用outer class DialogFrame 的referencesolution:
class DialogFrame extends JFrame{
  ...
  class DialogPanel extends JPanel{
   ...
  }}

解决方案 »

  1.   

    我有个实例你看一看:
    public class MessageDialog extends JDialog implements ActionListener {  public MessageDialog(Frame parent,String title,String message) {
        super(parent,title,true);
        if(parent!=null){
          Dimension parentSize=parent.getSize();
          Point p=parent.getLocation();
          setLocation(p.x+parentSize.width/4,p.y+parentSize.height/4);
        }    JPanel messagePane=new JPanel();
        messagePane.add(new JLabel(message));
        getContentPane().add(messagePane);    JPanel buttonPane=new JPanel();
        JButton button=new JButton("OK");
        buttonPane.add(button);
        button.addActionListener(this);
        getContentPane().add(buttonPane,BorderLayout.SOUTH);
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        pack();
        setVisible(true);
      }  public void actionPerformed(ActionEvent e){
        setVisible(false);
        dispose();
      }}