2014-11-30 2 views
-1

сделать небольшой небольшую игру для моего компьютерного класса науки, но им изо всех сил, чтобы выяснить, как добавить графику в JPanel здесь то, что я до сих порДобавление графики в JPanel Java

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

Хорошо, вы дали нам широкие требования и какой-то необъяснимый код (работает ли он? Не работает? Как?), Но вам также нужно задать конкретный и ответный вопрос. Небольшое усилие будет иметь большое значение для получения хороших ответов. Лучшее, что я могу сделать в настоящее время, это дать вам эту ссылку для обучающих программ Swing и других ресурсов Swing: [Swing Info] (http://stackoverflow.com/questions/tagged/swing). Если вы дадите нам больше, тогда мы сможем сделать то же самое. –

ответ

1

Вы не добавляя Map компонент JPanel, который вы создали. В основном вам не хватает следующие строки в makeMap():

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

Вместо установки BorderLayout в panel после его строительства, вы также можете установить его во время строительства, то она будет выглядеть следующим образом:

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

Спасибо, отлично работает сейчас –