【问题标题】:Java Canvas size issueJava Canvas 大小问题
【发布时间】:2012-12-27 04:54:00
【问题描述】:

我是 Java 新手(虽然我对 JavaScript 有广泛的了解),

我正在尝试使用 Canvas,这导致了这个奇怪的问题。

如您所见,在我定义了Canvas 的大小之后,我正在尝试打印它。 但它不能正确打印尺寸。

import java.awt.Canvas;
import java.awt.Dimension;

public class test extends Canvas {
    public static final int WIDTH = 180;
    public static final int HEIGHT = 250;

    public test() {
        setMinimumSize(new Dimension(WIDTH,HEIGHT));
        setMaximumSize(new Dimension(WIDTH,HEIGHT));
        setPreferredSize(new Dimension(WIDTH,HEIGHT));

        System.out.println(getWidth());
    }

    public static void main(String[] args) {
        new test();
    }
}

为什么会改变大小?

【问题讨论】:

  • 当您的维度始终相同时,您只需创建一个新的 Dimension 对象并将其传递给这些方法中的每一个。您甚至可以将其声明为 static final 并使用它来代替 WIDTH 和 HEIGHT 常量。
  • 我还有一个问题,最好现在问,而不是打开一个新问题。
  • “与其开一个新的,不如现在问。” 不是,不是。该站点(及其搜索引擎)是围绕每个线程一个问题的概念设计的。顺便说一句,添加@RomanC(或任何人)以通知他们有新评论)。
  • 1) 为了尽快获得更好的帮助,请发帖 SSCCE。 2) 我怀疑宽度会一直显示0,直到组件在屏幕上实现。 3) 在这个千年不要使用 AWT。使用 Swing。

标签: java canvas awt


【解决方案1】:

为什么打印为零?如何正确打印画布的大小?

您还没有设置大小,因此宽度和高度仍然为 0。您只设置了布局提示的大小。布局管理器使用这些来布局组件。由于您没有使用布局管理器,因此未设置画布的实际大小。

使用setSize(new Dimension(WIDTH,HEIGHT));设置实际大小。

【讨论】:

  • 谢谢,但我改变了问题:)
  • @IsraelG。在这种情况下,最好提出一个新问题,以保持问题和答案之间的上下文一致。
【解决方案2】:

尝试这样做:setSize(new Dimension(WIDTH, HEIGHT));

【讨论】:

    【解决方案3】:

    可以尝试打印它: System.out.print(test.getWidth()) 或:System.out.print(WIDTH)? 抱歉,我并没有真正使用过 java.awt,但我希望第一个能用!

    【讨论】:

      猜你喜欢
      • 2021-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-21
      • 2011-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多