我有一些代码正在尝试重新编译和理解,但是我有一个无法编译的方法,我希望找到解决方法。方法如下。

private void launchEventPanel(String title) {
    EventQueue.invokeLater(new Runnable(title) {
        public void run() {
        JFrame myFrame = new JFrame();
        myFrame.setTitle("Conference Call");
        myFrame.setIconImage(CallConference.this.myCore.myPanel.myIconManager.getPromptIcon(CallEMart.class.toString()));
        myFrame.getContentPane().add(CallConference.this.myEventPanel, "Center");
        myFrame.pack();
        myFrame.setVisible(true); } }); }


EventQueue.invokeLater的第二行未编译,出现错误“匿名类实现接口,不能有参数”。

任何帮助和解决方法都受到高度赞赏。谢谢!

最佳答案

就像消息中说的那样:java.lang.Runnable是一个接口,因此您不能将title传递给它的构造函数。
采用:

EventQueue.invokeLater(new Runnable() {


代替。

请注意,标题未在任何地方使用。如果需要在Runnable中使用它,则需要将其声明为final:

private void launchEventPanel(final String title) {
EventQueue.invokeLater(new Runnable() {
    public void run() {
    JFrame myFrame = new JFrame();
    myFrame.setTitle(title);

关于java - 匿名类实现接口(interface),不能有参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10033445/

10-12 06:27