我正在上一个iTunesU课程,它使用了EricS.Roberts的“”一书“Java的艺术和科学”。这本书声称,如果我扩展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);
}
}我看到了类似于我的问题,但没有一个问题解决了简单地声明常量来调整窗口大小的能力。
发布于 2014-02-18 18:11:02
罗伯茨教授不会骗你的。仔细研究一下您从他的好书中使用的代码,就会发现所讨论的常量(APPLICATION_WIDTH & APPLICATION_HEIGHT)需要声明为公共的,而不是私有的。当您拥有它们时,ACM程序类无法找到您的声明。
https://stackoverflow.com/questions/21665141
复制相似问题