Java Canvas 大小问题

标签 java canvas awt

我是 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();
    }
}

为什么尺寸会改变?

最佳答案

Why it prints zero?? how can I print the size of the canvas properly?

您尚未设置尺寸,因此宽度和高度仍为 0。您仅设置了布局提示的尺寸。布局管理器使用它们来布局组件。由于您没有使用布局管理器,因此未设置 Canvas 的实际大小。

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

关于Java Canvas 大小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14297967/

相关文章:

java - 如何在 OSX 上用 Java 进行全屏显示

java - 当互联网连接丢失时,优雅地处理 NPE 并在 OnPostExecute/AsyncTask 中显示 AlertDialog - Android/Java

javascript - 如何使用 html 范围输入( slider )更改 Canvas 线宽?

java - 使用其图形在另一个内部绘制控件

java - 如何将 MouseListener 添加到 GridLayout 中的每个单独元素?

javascript - 关于 javascript-canvas 对象的问题(保存、转换、恢复)

java - 在 JScrollPane 中调整 JPanel 的大小会清除我在 JPanel 上绘制的内容

java - UnsupportedClassVersionError : Bad version number in . 类文件

java - 通过 parcelable extra 检索时为空对象

javascript - 如何在javascript中检查鼠标指针是顺时针还是逆时针移动