如何使此对话框类工作?

时间:2016-01-20 20:47:05

标签: java dialog awt super

我制作了一个闹钟课,部分代码是选择播放的音乐。我创建了一个按钮,单击该按钮可打开一个对话框,用于选择音乐按钮。但是,我在这堂课中遇到了超级麻烦,这是我的其他窗户没有给我的问题。忍受我,我对此非常不满意。 这是音乐对话课程(告诉我你是否需要我的其他课程来回答)

import java.awt.*;
import java.io.*;
public class SetMusicDialog extends Dialog
{
    public static String sng;
    public SetMusicDialog()
    {
        super ( "Set Music");
        Panel mpanel;
        Font l = new Font("Helvetica", Font.ITALIC, 12);
        setFont(l);//sets font
        setBackground(Color.cyan);

        Panel f = new Panel();
        f.add("West", new Button("Death Grips"));
        f.add("East", new Button("Siren"));
        add("South",f);
        pack();                           // make it just fit
        resize(preferredSize());
        move(200,200);
    }

    public boolean handleEvent1 (Event evt)
    {
        switch (evt.id)
        {
            case Event.ACTION_EVENT:
                if("Death Grips".equals(evt.arg))
                {
                    sng= "breakmirrors.wav";
                }
                else if("Siren".equals(evt.arg))
                {
                    sng= "bip.wav";
                }
        }
    }
}

这是我不断得到的错误:

Error: no suitable constructor found for Dialog(java.lang.String)
constructor java.awt.Dialog.Dialog(java.awt.Frame) is not applicable
  (argument mismatch; java.lang.String cannot be converted to java.awt.Frame)
constructor java.awt.Dialog.Dialog(java.awt.Dialog) is not applicable
  (argument mismatch; java.lang.String cannot be converted to java.awt.Dialog)
constructor java.awt.Dialog.Dialog(java.awt.Window) is not applicable
  (argument mismatch; java.lang.String cannot be converted to java.awt.Window)

1 个答案:

答案 0 :(得分:0)

在您的构造函数中,您尝试使用字符串参数调用super。因为您继承了Dialog类。从链接的javadocs中可以看出,Dialog没有只接受字符串的构造函数 - 您必须先传递其他参数(另一个DialogFrame,{{1 },或Window)。

作为临时解决方法,您可以使用null作为第一个参数调用null - 这意味着您正在创建的对话框没有父窗口。

super