2010-02-26 3 views
0

J'essaye d'afficher un objet circulaire dans mon gui, l'objet circulaire devrait contenir quelques étiquettes donc je pensais que l'objet cercle devrait étendre JPanel. Est-ce que quelqu'un sait comment faire un JPanel circulaire? Ou au moins un JPanel qui peint un ovale et place quelques JLables au centre de l'ovale?Circulaire JPanel Swing

Merci

+0

Que voulez-vous dire par un panneau circulaire? Voulez-vous faire un cercle sur elle, ou vos composants doivent-ils être disposés en cercle? –

+0

Salut, je viens de mettre à jour la question. Je veux faire un cercle et avoir 2 JLabels empilés les uns sur les autres au centre – Aly

Répondre

7

Pour peindre un cercle, la sous-classe JPanel et remplacent paintComponent:

public class CirclePanel extends JPanel { 

    @Override 
    protected void paintComponent(Graphics g) { 
     g.drawOval(0, 0, g.getClipBounds().width, g.getClipBounds().height); 
    } 
} 

ressemble à ceci:

alt text http://img246.imageshack.us/img246/3708/so2343233.png

Pour placer les étiquettes, vous pouvez utiliser GridBagLayout, J'espère que c'est ce que vous voulez:

CirclePanel panel = new CirclePanel(); 

panel.setLayout(new GridBagLayout()); 

GridBagConstraints gc; 

gc = new GridBagConstraints(); 
gc.gridy = 0; 
panel.add(new JLabel("Label 1"), gc); 

gc = new GridBagConstraints(); 
gc.gridy = 1; 
panel.add(new JLabel("Label 2"), gc); 

alt text http://img694.imageshack.us/img694/4013/so23432332.png

+0

Pouvez-vous ajouter des étiquettes au centre de l'ovale? – Aly