Soucis de mise en forme

zaiojioo Messages postés 4 Date d'inscription jeudi 1 mai 2014 Statut Membre Dernière intervention 9 octobre 2014 - 10 mai 2014 à 16:18
zaiojioo Messages postés 4 Date d'inscription jeudi 1 mai 2014 Statut Membre Dernière intervention 9 octobre 2014 - 10 mai 2014 à 21:45
Bonjour, je vous explique mon soucis je séche depuis quelques heures .

Voici mon code :



public class Fenetre extends JFrame{
private JLabel info = new JLabel("Information joueur 1:");
private JLabel info1 = new JLabel("Information joueur 2:");
private JSeparator separateur = new JSeparator(SwingConstants.VERTICAL);

public Fenetre(){


JPanel right = new JPanel();
this.getContentPane().setLayout(new BorderLayout());

this.getContentPane().add(right,BorderLayout.EAST);

info.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));
right.setLayout(new BoxLayout(right,BoxLayout.Y_AXIS));
right.add(info);
right.add(info1);
right.add(separateur);


right.add(new JButton("A"));
right.add(new JButton("B"));
right.add(new JButton("C"));
}
public static void main(String[]args){
Fenetre fen=new Fenetre();
fen.setVisible(true);
}
}


Voila je cherche a faire un panel avec un JSeparator mais j'aimerais déplacé mon JSeparator un peu plus faire la gauche pour pas que mes JLabel soit collé contre le bord à droite .

Merci de votre compréhension.

2 réponses

KX Messages postés 16597 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 26 septembre 2022 124
10 mai 2014 à 17:23
Bonjour,

Le JSeparator que tu utilises n'a rien à voir avec ton problème, c'est un séparateur vertical qui te sers à mettre les JLabel en haut et les JButton en bas, donc aucune interaction avec la mise en forme à droite qui est elle gérée par le BorderLayout.EAST

Une manière de faire est de rajouter un JPanel avec une autre bordure qui prendra en paramètre les marges voulues.

import java.awt.BorderLayout;

import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSeparator;
import javax.swing.SwingConstants;
import javax.swing.border.BevelBorder;
import javax.swing.border.EmptyBorder;

public class Fenetre extends JFrame
{
    private static final long serialVersionUID = 1L;
    
    public Fenetre()
    {
        JPanel right = new JPanel();
        right.setLayout(new BoxLayout(right, BoxLayout.Y_AXIS));
        right.setBorder(new EmptyBorder(10, 10, 10, 10));
        right.add(new JLabel("Information joueur 1 :"));
        right.add(new JLabel("Information joueur 2 :"));
        right.add(new JSeparator(SwingConstants.VERTICAL));
        right.add(new JButton("A"));
        right.add(new JButton("B"));
        right.add(new JButton("C"));
        
        JPanel east = new JPanel();
        east.setLayout(new BoxLayout(east, BoxLayout.Y_AXIS));
        east.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
        east.add(right);
        
        this.setLayout(new BorderLayout());
        this.add(east, BorderLayout.EAST);
        this.setSize(400, 400);
        this.setVisible(true);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
    
    public static void main(String[] args)
    {
        new Fenetre();
    }
}
1
zaiojioo Messages postés 4 Date d'inscription jeudi 1 mai 2014 Statut Membre Dernière intervention 9 octobre 2014
10 mai 2014 à 21:45
Voilà j'ai essayé sa :





public class Jeu {
private JPanel right = new JPanel();
private JLabel info = new JLabel("Information joueur 1:");
private JLabel info1 = new JLabel("Information joueur 2:");
private JSeparator separateur = new JSeparator(SwingConstants.VERTICAL);
private static JFrame frame = new JFrame();



public Jeu() {




initData();
initLayout();

}

private void initData() {

JoueurHumain joueurHumain1 = new JoueurHumain("j1");
joueurHumain1.setNumeroJoueur(1);;
joueurs.add(joueurHumain1);
GenererCarte genererCarte = new GenererCarte();

private void initLayout() {
CreationGrille grille = new CreationGrille(grilleJeu, joueurs);
frame.add(right);
right.setLayout(new BorderLayout());



info.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));
right.setLayout(new BoxLayout(right,BoxLayout.Y_AXIS));
right.add(info);
right.add(info1);
separateur.setMinimumSize(new Dimension(200,500));
right.add(separateur);
frame.setContentPane(grille);
frame.setVisible(true);
frame.setSize(200, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}


J'ai voulu ajouter le JPanel dans ma JFrame avec ma grille mais rien ne s'affiche..
0