J'ai un JPanel qui ne fait pas partie d'un JFrame. Pour diverses raisons, je dois appeler la méthode de peinture du panel à l'aide de ma propre méthode de «mise à jour».Mise en page JPanel dans l'applet
Ceci est mon code:
public void onLoad()
{
panel = new JPanel();
panel.setBounds (0,0,Main.WIDTH,Main.HEIGHT);
panel.setLayout (new BoxLayout (panel, BoxLayout.Y_AXIS));
addButton ("button1", panel);
addButton ("button2", panel);
}
private void addButton (String text, Container container)
{
JButton button = new JButton (text);
button.setPreferredSize (new Dimension (100,20));
button.setAlignmentX (Component.CENTER_ALIGNMENT);
container.add (button);
}
public void onRender (Graphics2D g)
{
panel.paint (g);
}
Cela ne peint la couleur de fond du panneau. Si j'ajoute button.setBounds (...) dans la méthode addButton alors il peint les boutons mais n'est pas affecté par le BoxLayout. Je veux donc que les boutons soient affectés par le BoxLayout évidemment. Je ne suis pas très avisé sur la façon dont Swing fonctionne exactement, donc je ne suis pas sûr de savoir comment faire cela. JFrame a une méthode pack() dont je pense avoir besoin mais un équivalent pour JPanels puisque JPanels n'a pas cette méthode.
Utilisez-vous la classe JApplet? Je crois que les composants Swing ne seront pas rendus correctement dans les applets ordinaires. – perp