一个框架窗口示例代码:
import javax.swing.JFrame;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.Dimension;
class SampleJFrame extends JFrame
{
SampleJFrame()
{
super("java示例框架窗口");
setSize(500,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(true);
Image appIcon;
Toolkit tkit = Toolkit.getDefaultToolkit();
appIcon = tkit.getImage("D:\\java\\MyProject\\Applet\\image\\1122.JPG");
setIconImage(appIcon);
Dimension screenSize = tkit.getScreenSize();
Dimension frameSize = this.getSize();
if(frameSize.height > screenSize.height)
{
frameSize.height = screenSize.height;
}
if(frameSize.width > screenSize.width)
{
frameSize.width = screenSize.width;
}
this.setLocation((screenSize.width-frameSize.width)/2 ,
    (screenSize.height-frameSize.height)/2 );
setVisible(true);
}

public static void main(String[] args)
{
SampleJFrame sjf = new SampleJFrame();
}
}问题:
1。super("java示例框架窗口");这句中的super()函数是如何工作的。只知道它给窗口起了个名字,但具体是如何实现的?
2。Toolkit这个类又是如何使用的?JDK的帮助文档有点看不懂,而且之后的很多操作都是通过Toolkit的对象来实现的。
3。this.setLocation()中this去掉后也可以正常运行。那么在这里this起到了什么作用,去掉之后语意有没有改变?

解决方案 »

  1.   

    1.看看继承
    2.看看静态方法
    3.看看this
      

  2.   

    1。super("java示例框架窗口");这句中的super()函数是如何工作的。只知道它给窗口起了个名字,但具体是如何实现的?
    是调用父类的JFrame(String title) 这个构造方法2.Toolkit a=Toolkit.getDefaultToolkit() ;
    a就是Toolkit的实例
    3、设置窗体左上角显示位置/**让窗体居中显示
     * 
     * @param frame1 要居中显示的窗体
     */
    public static void toCentre(JFrame frame1)
    {
     Toolkit  k = Toolkit.getDefaultToolkit();
     Dimension screenArea = k.getScreenSize();
     int x = (int)(screenArea.getWidth()-frame1.getWidth())/2;
     int y = (int)(screenArea.getHeight()- frame1.getHeight())/2;
     frame1.setLocation(x,y);
     
    }          
      

  3.   

    谢谢楼上
    怪我表达不清楚
    1。this和super指针我大概了解,只是第一次看到super()的形式所以看不懂,那么按楼上的说法,super()的作用是不是就是调用父类中的构造函数?
    2。Toolkit怎么用我看示例大概了解,只是对这个类的实际功能和在整个框架中的地位不是很清楚。
    3。this和super我感觉在重载的时候才有用,这里应该没有重载吧,this可以省略,那么这里this.setLocation()和setLocation()是不是就是等价的?