我刚刚开始我的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 []作为构造函数。
任何帮助都将不胜感激,谢谢。
答案 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();