我正在上一个使用 Eric S. Roberts 的书“Java 的艺术与科学”的 iTunesU 课程。这本书声称,如果我扩展GraphicsProgram
(acm.program JAR 的一部分),那么我可以简单地声明命名的常量APPLICATION_WIDTH
并APPLICATION_HEIGHT
给它们赋值,然后GraphicsProgram
看看我是否已经这样做并相应地调整窗口大小。我可以通过添加以下内容来调整窗口大小:
setSize(APPLICATION_WIDTH, APPLICATION_HEIGHT +CITATION_MARGIN);
在我的run()
方法中,但根据这本书我不应该这样做。这本书是在骗我还是我错过了什么?继承人的代码:
/*
* File: FryImage.java
* -------------------
* This program displays an image with a citation to the
* graphics window.
*/
package chap9;
import acm.program.*;
import acm.graphics.*;
public class FryImage extends GraphicsProgram {
// Citation constants
private static final String CITATION_FONT = "SansSerif-10";
private static final int CITATION_MARGIN = 30;
// dimensions of window
private static final int APPLICATION_WIDTH = 640;
private static final int APPLICATION_HEIGHT = 640 + CITATION_MARGIN;
public void run(){
add(new GImage("ProfAlive.jpg"));
addCitation("Courtesy of Reddit Weekly");
}
// Adds citation along bottom of window
private void addCitation(String text) {
GLabel label = new GLabel(text);
label.setFont(CITATION_FONT);
double x = (getWidth() - label.getWidth()) / 2;
double y = getHeight() - CITATION_MARGIN + label.getAscent();
add(label, x, y);
}
}
我看到了与我的类似的问题,但没有一个问题涉及简单地声明常量以调整窗口大小的能力。