将图形添加到JPanel java

时间:2014-11-30 19:12:06

标签: java swing graphics jpanel jcomponent

为我的计算机科学课做一个小小的游戏但是我很难弄清楚如何将图形添加到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");
}
}

1 个答案:

答案 0 :(得分:1)

您未将Map组件添加到您已创建的JPanel组件中。 基本上你在makeMap()中缺少以下几行:

panel.setLayout(new BorderLayout());
panel.add(this);

不是在构建BorderLayout之后设置panel,而是在构造期间设置它,然后它看起来像这样:

panel = new JPanel(new BorderLayout());
panel.add(this);