簡體   English   中英

嘗試使用JFrame和JPanel將窗口塗成黑色

[英]Attempting to paint window black using JFrame and JPanel

我已經制作了一個JFrame,並為其添加了一個JPanel。 我正在嘗試將窗戶完全漆成黑色,但無法正常工作! 先感謝您。

這是我的主班!

package com.lootdatdungeon.net;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;

import javax.swing.JFrame;

public class Main {

public static void main(String[] args){

    initWindow();

}

public static void initWindow(){

    Window window = new Window();
    Thread windowThread = new Thread(window);
    windowThread.start();

}

}

好的,這是我的Window課!

package com.lootdatdungeon.net;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Window extends JFrame implements Runnable{

private static final long serialVersionUID = 1L;
private static final int HEIGHT = 240;
private static final int WIDTH = 320;
private static final int SCALE = 2;

private BufferedImage image;
private Graphics2D g;

private boolean running = true;

public Window(){

    System.out.println("Window object made");

    JFrame frame = new JFrame("Loot dat dungeon");
    JPanel panel = new JPanel();

    frame.setSize(WIDTH*SCALE,HEIGHT*SCALE);
    frame.setVisible(true);
    frame.setResizable(false);
    frame.add(panel);

    image = new BufferedImage(WIDTH,HEIGHT,BufferedImage.TYPE_INT_RGB);
    g = (Graphics2D) image.getGraphics();

}

public void Draw(Graphics g){

    System.out.println("Draw method ran");
    g.setColor(Color.BLACK);
    g.drawRect(0, 0, WIDTH, HEIGHT);


}

@Override
public void run() {
    while(running){
    Draw(g);
    }
}

}

只需使用JPanel overriiden paintComponent()方法以這種方式進行

JPanel panel = new JPanel() {
    @Override
    public void paintComponent(Graphics g) {
        // don't forget to call it
        super.paintComponent(g);
        // set color
        g.setColor(Color.BLACK);
        // fill a rect that cover whole panel with specified color
        g.fillRect(0, 0, getWidth(), getHeight());
    }
};

注意:在這種情況下,不需要Thread和BufferedImage。

您應該閱讀一下http://www.gametutorial.net/article/Java-game-framework

如果您想創建游戲,那么該站點上有很多很好的信息。 那就是我開始的地方。

暫無
暫無

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

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