awt框架构造函数不接受GraphicsConfiguration类的命名

时间:2014-11-27 15:28:11

标签: java awt naming

我刚刚开始我的Java努力,刚刚读完了oracle网站上的学习java部分。所以我只是通过一些包看看是什么。

所以我看看awt包,我假设它是一个排序的图形包?

无论如何,我尝试使用以下方法创建一个框架:

import java.awt.*;

class WindowTest{
        public static void main(String[] args){
                Frame f = new Frame(GraphicsConfiguration gc);
                Rectangle bounds = gc.getBounds();
                f.setLocation(10 + bounds.x, 10 + bounds.y);
        }
}

我尝试编译时收到编译错误,如下所示:

main.java:5: error: ')' expected
        Frame f = new Frame(GraphicsConfiguration gc);
                                                 ^
main.java:5: error: illegal start of expression
        Frame f = new Frame(GraphicsConfiguration gc);
                                                    ^
2 errors

我知道我无法实例化GraphicsConfiguration,因为它是一个抽象类,我不能用它初始化它:

GraphicsConfiguration[] gc = GraphicsDevice.getConfiguration();

因为Frame不接受GraphicsConfiguration []作为构造函数。

任何帮助都将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:1)

当你调用方法或构造函数时,你传递参数 - 值 - 你声明参数就像你声明方法或构造函数时那样

所以它应该是这样的:

GraphicsConfiguration gc = ...; // Whatever you need to get a value
Frame f = new Frame(gc);

请注意,这与AWT没有任何关系。它只是调用方法或构造函数的基本语法。例如:

public class Test {
    public static void main(String[] args) {
        someMethod(10); // Fine; uses an integer literal
        int a = 10; 
        someMethod(a); // Fine; uses the value of a variable
        someMethod(int b); // Invalid syntax
    }

    public static void someMethod(int x) {
        System.out.println(x);
    }
}

在这种特定情况下,除非你拥有你要指定的特定GraphicsConfiguration,否则只需调用无参数构造函数:

Frame f = new Frame();