为我的计算机科学课做一个小小的游戏但是我很难弄清楚如何将图形添加到JPanel这里是我到目前为止所拥有的
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.*;
public class Map extends JComponent{
private JFrame frame;
private JPanel panel;
Map()
{
setPreferredSize(new Dimension(500,500));
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawRect(100,150, 100, 100);
}
public void makeMap()
{
frame = new JFrame();
panel = new JPanel();
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
frame.setTitle("MAP");
}
}
答案 0 :(得分:1)
您未将Map
组件添加到您已创建的JPanel
组件中。
基本上你在makeMap()
中缺少以下几行:
panel.setLayout(new BorderLayout());
panel.add(this);
不是在构建BorderLayout
之后设置panel
,而是在构造期间设置它,然后它看起来像这样:
panel = new JPanel(new BorderLayout());
panel.add(this);