java - 如何使用变量名正确绘制矩形

标签 java draw paint rectangles

我正在创建一个简单的 java 项目,并想知道如何使用如下变量名称创建 矩形:

Rectangle header = new Rectangle(0, 0, 500, 100);
Rectangle background = new Rectangle(0, 100, 500, 400);

我目前有这个代码可以填充:

public void draw(Graphics g) {
    g.setColor(darkGreen);
    g.fillRect(header.x, header.y, header.width, header.height);
    g.setColor(tan);
    g.fillRect(background.x, background.y, background.width, background.height);
}

但是,当我运行代码时,什么也没有出现,据我所知,没有其他错误,但以防万一,这里是其余的:

package trivia;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Rectangle;

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

@SuppressWarnings("serial")
public class Main extends JPanel{

static Color tan = Color.decode("#F4EBC3");
static Color darkGreen = Color.decode("#E9E0D6");
Rectangle header = new Rectangle(0, 0, 500, 100);
Rectangle background = new Rectangle(0, 100, 500, 400);

@Override
public void paint(Graphics g) {
}

public void draw(Graphics g) {
    g.setColor(darkGreen);
    g.fillRect(header.x, header.y, header.width, header.height);
    g.setColor(tan);
    g.fillRect(background.x, background.y, background.width, background.height);
}

public static void main(String[] args) {
    int HEIGHT = 500;
    int WIDTH = 500;
    JFrame mainFrame = new JFrame("Mini Tennis");
    mainFrame.setSize(HEIGHT, WIDTH);
    mainFrame.setVisible(true);
    mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    mainFrame.setLocationRelativeTo(null);
}

}

非常感谢任何帮助!

最佳答案

您需要首先将 Main(类)的新实例添加到 JFrame 中。在paint(Graphics g)中,您需要调用draw(g)。我个人使用高级双缓冲,因此它不会一直闪烁 -> https://github.com/czipperz/CLibrary/blob/master/src/io/czipperz/github/cLibrary/game/CGameFrame.groovy#L123 (这是 Groovy 代码,但它基本上是 Java)。

关于java - 如何使用变量名正确绘制矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27456698/

相关文章:

java - Neo4J 对象创建性能不佳

java - jsr 关键字是什么意思?

java - Eclipse RCP : don't refresh View when it is minimized

java - 在 Java 动画中使用线程

java - 简化复杂的三元条件

javascript - HTML5 Canvas - 在屏幕上显示像素颜色数组的最快方式

c - Visual Studio : Won't draw rectangle in a subwindow

ios - 如何在 iPhone 上绘制透明描边(或以任何方式清除图像的一部分)

android - 如何在 Canvas 上画一个半椭圆

Java JFrame 的大小不准确