2013-12-07 3 views
0

Хорошо у меня есть JPanel, как этот один:Добавить объект из другого класса к JPanel

public class GUI { 
JFrame frame = new JFrame("Net"); 

JPanel panel = new JPanel(); 
public GUI() 
{ 
frame.setSize(835,650); 
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
frame.setVisible(true);   
frame.add(panel); 
panel.setSize(600,600); 
panel.setLocation(215,5);} 

Есть некоторые другие панели там столы и т.д. Мое главное это одна:

public static void main(String[] args) { 

    SwingUtilities.invokeLater(new Runnable(){ 
    @Override 
    public void run(){ 
    //new GUI(); 
    new GUI().buildTable(); 

    } 

    }); 

и я другой класс это один:

public class DrawPlanes extends GUI 
{  

private static int centreX, centreY, radius; 
private Color colour; 

public DrawPlanes() 
{ 
centreX = 300; 
centreY = 300; 
radius = 200; 
colour = Color.BLACK; 
} 

public DrawPlanes(int centreX,int centreY, int radius, Color colour) 
{ 
this.centreX = centreX; 
this.centreY = centreY; 
this.radius = radius; 
this.colour = colour; 

} 

@Override 
protected void paintComponent(Graphics g) 
{ 

    super.paintComponent(g); 
    System.out.println("ppp"); 
    Graphics2D g2D = (Graphics2D) g;   
    g2D.setStroke(new BasicStroke(2F)); 
    g.setColor(Color.BLACK); 
    g.drawOval(centreX - radius , centreY - radius, radius * 2 , radius * 2); 
    ...... 
    } 
    } 

Теперь я могу добавить этот класс к моей панели я попытался создать объект в основной, а затем добавить объект к моей панели. Я также пробовал

panel.add(new DrawPlanes(int x, int y, int radius,Color colour)); 

но он не получил чертеж, добавленный в панель. Все предложения?

ответ

1
  • DrawPanel не является компонентом, он расширяет GUI, который не является компонентом либо.
  • container.add(component) Функция ожидает компонент, в Swing, по существу, JComponent и это расширение компонент: JPanel, JLabel, JButton т.д.
  • расширяет DrawPanel к JComponent или JPanel. Однако оба они в основном не похожи на то, что JComponent непрозрачен, а JPanel непрозрачен.
+0

хорошо, тогда просто нет способа добавить чертеж класса DrawPlanes в мою панель? !!? – Renobatio

+0

, пожалуйста, внимательно прочитайте ответ. Я специально сказал, чтобы расширять 'DrawPanel' до' JPanel' или 'JComponent' – Sage

+0

Хорошо, я расширил DrawPlanes до JPanel, я добавил его в панель JPanel.add (новые DrawPlanes (300,300,200, Color.BLACK)); Я установил цвет фона панели красного цвета, чтобы увидеть, что происходит, и теперь появляется вся красная панель и небольшой квадратный серый цвет, где я считаю, что он содержит мой рисунок. Я также попытался изменить непрозрачность, чтобы предотвратить некоторую несовместимость но ничего не изменилось – Renobatio

Смежные вопросы