gpt4 book ai didi

java - 从单独的类绘制到面板

转载 作者:行者123 更新时间:2023-11-30 11:03:37 27 4
gpt4 key购买 nike

我一直在努力学习如何为游戏绘制 Jpanel。我想从不同的类(比如管理 map 的类和管理玩家模型的类)中提取它。

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Main
{
public static void main (String[] args)
{
JFrame frame = new JFrame ("Java Game");
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.setSize (1000, 600);
JPanel panel = new JPanel();
panel.setBackground (Color.WHITE);
Dimension size = new Dimension(1000,500);
panel.add (new Player()); // Class with paintComponent method.
panel.setPreferredSize(size);
panel.setBackground(Color.BLUE);
frame.getContentPane().add(panel);
frame.setVisible(true);
}
}

下节课

import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JComponent;

@SuppressWarnings ("serial")
public class Player extends JComponent
{
int x = 50;
int y = 450;
public void paintComponent (Graphics g)
{
super.paintComponent(g);
g.setColor (Color.BLACK);
g.fillRect (x, y, 50, 50);
}
}

最佳答案

您可能想要扩展 JPanel。它已经是不透明的,并且可以为您处理背景颜色。也给你的面板一个像他们一样的尺寸here , 那么就可以根据尺寸进行绘图了。

image

Player p = new Player();
p.setBackground(Color.cyan);
frame.add(p);
frame.pack();
frame.setVisible(true);

public class Player extends JPanel {

private static final int X = 320;
private static final int Y = 240;

@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLACK);
g.fillRect(getWidth() / 2 - 25, getHeight() / 2 - 25, 50, 50);
}

@Override
public Dimension getPreferredSize() {
return new Dimension(X, Y);
}
}

关于java - 从单独的类绘制到面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30295445/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com