下面的代码是照书输入的,运行不了
import java.awt.*;
import javax.swing.Timer;
import java.awt.Toolkit;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.math.*;
import java.util.Date;
public class CloneTest extends Object
{
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable() 
{
public void run()
{
SizedFrame frame = new SizedFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}class SizedFrame extends JFrame
{
public SizedFrame()
{
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int screenHeight = screenSize.height;
int screenWidth = screenSize.width;

setSize( screenWidth/2, screenHeight/2 );
setLocationByPlatform(true);

Image img = kit.getImage("C:\\Users\\Administrator\\Desktop\\a.gif");
setIconImage(img);
setTitle("SizedFrame");
}
}1、上面代码运行不了
2、EventQueue.invokeLater 语句是函数调用吗?我还是第一次见这种语法,如果是函数 new Runnable() 后面应该有个逗号啊,那后面怎么是个左大括号呢。 里面的 public void run 我到是看出来是个函数了
3、SetIconImage没效果啊,还是默认的图标

解决方案 »

  1.   

     1.new Runnable() 是重写run方法
    2.设置图标在配置文件里设置。
      

  2.   


    EventQueue.invokeLater(new Runnable() 
            {
                public void run()
                {
                    SizedFrame frame = new SizedFrame();
                    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    frame.setVisible(true);
                }
            });EventQueue.invokeLater()这个方法需要一个实现了Runnable接口的类的对象,此处是匿名内部类的写法。