当前位置: 首页 > 知识库问答 >
问题:

图形未绘制到JFrame

贝礼骞
2023-03-14

我觉得我经历了我需要做的一切:

  • 创建一个名为paintComponent的图形类,并扩展JComponent
  • 将图形g作为参数,然后执行Graphics2D g2d=(Graphics2D)g
  • 将图形类添加到我的JFrame

我没发现有什么问题,所以我有点困惑
我的代码在这里:

public static void main(String[] args) {
    DragonEscape game = new DragonEscape();
    frame.setTitle(title);
    frame.setSize(1000, 500);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    frame.setResizable(false);
    frame.setLocationRelativeTo(null);
    frame.add(new Graphicsa());
    frame.add(game);
}

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.swing.JComponent;

public class Graphicsa extends JComponent {
    private static final long serialVersionUID = 1L;

    public Graphics g;

    protected void paintComponent(Graphics g) {
        Graphics2D g2d = (Graphics2D) g;
        g.fillRect(0, 0, 1000, 500);
        g.setColor(Color.gray);
        g.fillRect(0, 0, 100, 100);
    }

}

共有1个答案

汪德明
2023-03-14
frame.add(new Graphicsa());
frame.add(game);

只有一个组件可以添加到JFrame的BorderLayout的中心。因此,游戏组件将替换图形组件。

阅读Swing教程了解Swing基础知识。以下章节介绍:

  1. 如何使用BorderLayout
  2. 定制绘画

这与这个问题直接相关。

另外,你为什么要尝试绘制图形?如果在我看来你只是想给背景涂上某种颜色。只要在你的游戏组件上使用setbackground(...)方法。

 类似资料:
  • 各位程序员好, 我在代码中遇到了一个似乎无法破解的小问题。它与Java的Jframe;图形区域有关。我将在下面发布的代码是在一个绘图方法上。其目的是绘制ArrayList中的房间,该房间位于另一个类中,因此之前。这种偏离航线的情况不会发生,因此在这里发帖。 获取有关该项目的背景信息是ArrayList,其中包含各种不同大小和颜色的房间。房间本身就是物体。 首先是课程: 下面是用于创建房间的类。 我

  • 问题内容: 关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 6年前关闭。 改善这个问题 我想用Java绘制图形(节点和边)。但是,由于我不知道该怎么做,因此在开始之前我想寻求一些建议。 我应该怎么做? 使用Graphics2D包,对吗? 节点的标签怎么样?我应该使用诸如drawString之类的东西并手动处理所有“

  • 主要内容:1 Swing绘制图形的介绍,2 Swing绘制图形的方法,3 Swing绘制图形的案例1 Swing绘制图形的介绍 java.awt.Graphics类提供了许多用于图形编程的方法。 2 Swing绘制图形的方法 方法 描述 public abstract void drawString(String str, int x, int y) 用于绘制指定的字符串。 public void drawRect(int x, int y, int width, int height) 绘制

  • LCUI 实现了一些图形 API 用于解决组件的背景、边框和阴影的绘制问题。它们都依赖绘制上下文且都支持局部区域绘制,使得 LCUI 能够利用脏矩形机制和 OpenMP 并行渲染来提升渲染性能。 绘制背景 背景绘制参数被定义为LCUI_Background 结构体类型的对象,由 Background_Paint() 函数负责绘制。在下面的例子中,我们将画布中的区域 (200, 100, 400,

  • 绘制矩形 与其它图形库不同,LCUI 提供的图形 API 只支持矩形这一种形式的图形绘制,不支持基于路径来绘制复杂图形。因此,对于其它复杂的图形,你需要手动编写代码填充像素来绘制。 LCUI 提供了一种绘制矩形的方法: int Graph_FillRect(LCUI_Graph *graph, LCUI_Color color, LCUI_Rect *rec

  • 对于需要图形分层的应用,经常需要处理透明度。本节,我们将学习如何使用全局透明度设置图形的透明度。 图2-5 绘制透明图形 绘制步骤 按照以下步骤,在一个不透明的矩形之上,绘制一个透明的圆: 1. 定义2D画布上下文: window.onload  = function(){ var canvas  = document.getElementById("myCanvas"); var co