无法绘制到 canvas:"cannot be applied to given types"
Can't draw to canvas: "cannot be applied to given types"
我用了边框布局,中间放了一个canvas;主要游戏的位置,但我无法绘制任何东西。
谁能给我指出正确的方向?
import java.awt.*;
import javax.swing.*;
public class TestingGraphics {
public static void main (String[] args) {
GameScene window = new GameScene();
}
}
import java.awt.*;
import javax.swing.*;
public class GameScene extends JFrame {
Canvas gameCanvas;
Graphics Pencil;
JPanel game;
public GameScene() {
game = new JPanel();
add(game);
setTitle("Yet to name this thing.");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gameCanvas = new Canvas();
gameCanvas.setPreferredSize(new Dimension(1280, 720));
game.add(gameCanvas);
drawString();
pack();
setLocationRelativeTo(null);
setVisible(true);
}
public void drawString(Graphics Pencil) {
Pencil.drawString("boo", 100, 100);
}
}
你的问题是你在胡乱猜测如何在 Swing 中绘制,但从来没有奏效,你的错误包括试图直接在 JFrame 中绘制,试图在不传递必要参数的情况下调用方法,绘制在任何绘画方法之外...。首先,转到您可以在此处找到的 Swing 绘图教程:Swing Drawing Tutorials -- 并阅读它们。
接下来,照他们说的做:
- 创建一个 class 扩展 JPanel
- 在 class 的 paintComponent 方法覆盖中绘制,而不是直接在 JFrame 中绘制
- 一定要在重写的方法中调用 super 的 paintComponent 方法。
- 将您的 JPanel 添加到顶层 window,例如 JFrame
- 显示 GUI
- 完成。
我用了边框布局,中间放了一个canvas;主要游戏的位置,但我无法绘制任何东西。
谁能给我指出正确的方向?
import java.awt.*;
import javax.swing.*;
public class TestingGraphics {
public static void main (String[] args) {
GameScene window = new GameScene();
}
}
import java.awt.*;
import javax.swing.*;
public class GameScene extends JFrame {
Canvas gameCanvas;
Graphics Pencil;
JPanel game;
public GameScene() {
game = new JPanel();
add(game);
setTitle("Yet to name this thing.");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gameCanvas = new Canvas();
gameCanvas.setPreferredSize(new Dimension(1280, 720));
game.add(gameCanvas);
drawString();
pack();
setLocationRelativeTo(null);
setVisible(true);
}
public void drawString(Graphics Pencil) {
Pencil.drawString("boo", 100, 100);
}
}
你的问题是你在胡乱猜测如何在 Swing 中绘制,但从来没有奏效,你的错误包括试图直接在 JFrame 中绘制,试图在不传递必要参数的情况下调用方法,绘制在任何绘画方法之外...。首先,转到您可以在此处找到的 Swing 绘图教程:Swing Drawing Tutorials -- 并阅读它们。
接下来,照他们说的做:
- 创建一个 class 扩展 JPanel
- 在 class 的 paintComponent 方法覆盖中绘制,而不是直接在 JFrame 中绘制
- 一定要在重写的方法中调用 super 的 paintComponent 方法。
- 将您的 JPanel 添加到顶层 window,例如 JFrame
- 显示 GUI
- 完成。