首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不调整窗口大小的acm.graphics APPLICATION_WIDTH和APPLICATION_HEIGHT常量

不调整窗口大小的acm.graphics APPLICATION_WIDTH和APPLICATION_HEIGHT常量
EN

Stack Overflow用户
提问于 2014-02-09 21:16:00
回答 1查看 1.2K关注 0票数 0

我正在上一个iTunesU课程,它使用了EricS.Roberts的“”一书“Java的艺术和科学”。这本书声称,如果我扩展GraphicsProgram ( acm.program JAR的一部分),那么我可以简单地声明名为APPLICATION_WIDTHAPPLICATION_HEIGHT的常量,并给出它们的值,GraphicsProgram将查看我是否已经这样做并相应地调整了窗口的大小。我可以通过添加以下内容来调整窗口的大小:

代码语言:javascript
复制
setSize(APPLICATION_WIDTH, APPLICATION_HEIGHT +CITATION_MARGIN);

在我的run()方法中,但根据这本书,我不应该这么做。这本书是在骗我,还是我漏掉了什么?这是代码:

代码语言:javascript
复制
/*
 * 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);
    }
}

我看到了类似于我的问题,但没有一个问题解决了简单地声明常量来调整窗口大小的能力。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-18 18:11:02

罗伯茨教授不会骗你的。仔细研究一下您从他的好书中使用的代码,就会发现所讨论的常量(APPLICATION_WIDTH & APPLICATION_HEIGHT)需要声明为公共的,而不是私有的。当您拥有它们时,ACM程序类无法找到您的声明。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21665141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档