图形未绘制到JFrame

时间:2017-10-07 15:53:09

标签: java swing graphics jframe

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

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

我无法找到任何问题,所以我有点困惑 我的代码在这里:

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);
    }

}

nvm use 8.5.0

1 个答案:

答案 0 :(得分:0)

frame.add(new Graphicsa());
frame.add(game);

只能将一个组件添加到JFrame的BorderLayout的CENTER。所以你的游戏组件取代了图形组件。

阅读Swing tutorial了解Swing基础知识。有以下部分:

  1. 如何使用BorderLayout
  2. 自定义绘画
  3. 与此问题直接相关。

    另外,为什么你甚至试图做图形绘画?如果我看起来像你只是想把背景画成某种颜色。只需在游戏组件上使用setBackground(...)方法。