簡體   English   中英

圖形未繪制到JFrame

[英]Graphics not drawing to JFrame

我感覺自己經歷了所有需要做的事情:

  • 制作一個圖形類,它具有一個稱為paintComponent的空隙並擴展了JComponent
  • 讓paintComponent void以Graphics g作為參數,然后做Graphics2D g2d =(Graphics2D)g;
  • 將Graphics類添加到我的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);
    }

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

只能將一個組件添加到JFrame BorderLayout的CENTER 因此,您的游戲組件將替換圖形組件。

閱讀有關Swing基礎知識的Swing教程 有以下部分:

  1. 如何使用BorderLayout
  2. 定制畫

與這個問題直接相關。

另外,為什么還要嘗試繪畫圖形呢? 如果在我看來,您只是想將背景塗成某種顏色。 只需在游戲組件上使用setBackground(...)方法即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM