似乎无法将图形绘制到我的画布上。 “不能适用于特定类型;”

时间:2016-05-01 12:48:18

标签: java swing graphics jpanel draw

我实际编码的内容与此不同,但我会分别重新创建问题以使其更容易。 我完全是编码的新手,刚刚读了一本关于基础知识的书,看了几个视频。 到目前为止,在我最终决定尝试创建游戏之前,所有内容都可以用来制作基本程序来测试我学到的东西! 有点像编码学习,而不是学习编码。 我使用了边框布局,我在中心放了一块帆布;主要游戏将在哪里。但是我无法得到任何东西。有人认为他们可以开导我吗? T ^ T

它与:

一起运行
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);

    DrawMyFuckingStringPlease();

    pack();
    setLocationRelativeTo(null);
    setVisible(true);
  }

  public void DrawMyFuckingStringPlease(Graphics Pencil)
  {
     Pencil.drawString("boo", 100, 100);
  }
}   

1 个答案:

答案 0 :(得分:3)

你的问题是,你正在猜测如何在Swing中绘制并且从不起作用,你的错误包括尝试直接在JFrame中绘制,尝试调用方法而不传递必要的参数,绘图除了任何绘画方法之外....首先,请转到Swing绘图教程,您可以在这里找到它们:Swing Drawing Tutorials - 并阅读它们。

接下来,他们告诉你:

  • 创建一个扩展JPanel的类
  • 在该类的paintComponent方法覆盖中绘制,而不是直接在JFrame
  • 中绘制
  • 请务必在覆盖的方法中调用super的paintComponent方法。
  • 将您的JPanel添加到顶级窗口,例如JFrame
  • 显示GUI
  • 完成。