JAVA. : Problème de saut de ligne pour un JPanel.

Résolu/Fermé
snp3109 Messages postés 77 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 10 juillet 2014 - 21 mars 2013 à 17:13
snp3109 Messages postés 77 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 10 juillet 2014 - 23 mars 2013 à 17:38
Bonjour,
Je voudrai effectuer un saut de ligne entre deux JPanel.
J'ai esseyé de nombreuse solutions mais aucune n'a fonctionné. (System.out.println("" ), \n , ... ).
Si quelqu'un aurait une solution cela m'avancerai énormément.
Merci beaucoup.
Bonne Journée.
snp3109

Mon code :

public class fenetre extends JFrame
{
public static void main(String[] args)
{
JFrame f=new JFrame("Outil de test");
f.setSize(new Dimension(400,450));
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel pan=new JPanel();
FlowLayout bl=new FlowLayout(FlowLayout.CENTER);
pan.setLayout(bl);
pan.setBackground(new Color(71,145,203));

JLabel lab=new JLabel("Nouveau SNR");
pan.add(lab);

JLabel lab1=new JLabel("Définition de la trame");
pan.add(lab1);
A voir également:

2 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
22 mars 2013 à 18:18
Tu aurais pu mettre ton code entier au moins ! Avec juste une partie comme ça, comment veux-tu que l'on sache d'où vienne l'erreur alors que l'on n'a pas la partie la plus importante : l'ajout de tes panels à ta fenêtre et l'affichage de celle-ci.

De plus, ça veut dire quoi "un saut de ligne entre deux JPanel", un JPanel ce n'est pas du texte, un saut de ligne ça n'a pas de sens !
Si ce que tu veux c'est afficher les deux panels l'un sous l'autre alors pourquoi avoir utilisé un FlowLayout ? C'est l'un des plus mauvais des layout pour faire ça vu qu'il n'affiche les composants que sur une ligne ! Regarde les autres layout (A Visual Guide to Layout Managers), en particulier BoxLayout si tu n'as que tes deux Label à mettre ton panel, ou alors d'autres un peu plus sophistiqué (GridBagLayout, GroupLayout, etc.) sans oublier bien sûr le positionnement absolu (Doing Without a Layout Manager : Absolute Positioning)
1
snp3109 Messages postés 77 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 10 juillet 2014 3
22 mars 2013 à 19:37
Bonjour KX merci d'avoir pris le temps de me répondre. Effectivement je me suis peut être mal exprimé. Je voudrai afficher mes label, buttom et checkbox les un en dessous des autres.
J'ai utilisé GridLayout pour obtenir l'affichage que je souhaite mais n'étant pas un professionnel en java j'ai un peu du mal à l'utiliser malgré les différents tuto que j'ai pu trouvé.
Je n'arrive pas à afficher ce que je voudrai. Voici mon code, si quelqu'un aurait une solution.


import javax.swing.*;
import java.awt.*;
import java.text.*;
import java.util.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.GridBagLayout;
import java.awt.BorderLayout;
import java.awt.event.*;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import java.awt.event.ActionEvent;

public class fenetre extends JFrame
{
public static void main(String[] args)
{
int compteur = 0;


JFrame f=new JFrame("Outil de création de nouveaux formats de trame");
f.setSize(new Dimension(400,450));
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel pan=new JPanel();

pan.setLayout(new GridLayout(23,2));

GridBagConstraints gbc = new GridBagConstraints();

pan.setBackground(new Color(71,145,203));

JLabel lab=new JLabel("Nouveau SNR");
pan.add(lab);

JLabel lab2=new JLabel("Nom du nouveau format de trame :");
pan.add(lab2);
JTextField text = new JTextField();
pan.add(text);

JLabel lab1=new JLabel("Définition de la trame");
pan.add(lab1);

JLabel lab3=new JLabel("Octet de départ: ");
pan.add(lab3);
JTextField text1 = new JTextField();
pan.add(text1);

JLabel lab4=new JLabel("Dans la ");
pan.add(lab4);

JComboBox cb=new JComboBox();
cb.addItem("voie1");
cb.addItem("voie2");
cb.addItem("voie3");
pan.add(cb);

JLabel lab5=new JLabel("Nombre d'octets: ");
pan.add(lab5);

CheckboxGroup groupe=new CheckboxGroup();
pan.add(new Checkbox("1",groupe,true));
pan.add(new Checkbox("2",groupe,false));

JLabel lab6=new JLabel("Nombre de voies: ");
pan.add(lab6);
JLabel lab61=new JLabel("0");
pan.add(lab61);

JLabel lab7=new JLabel("Ajouter/Supprimer une voie analogique: ");
pan.add(lab7);
JButton a= new JButton("+");
pan.add(a);
JButton b = new JButton("-");
pan.add(b);

JLabel lab8=new JLabel("Ajouter/Supprimer une voie Tout Ou Rien(TOR): ");
pan.add(lab8);
JButton c= new JButton("+");
pan.add(c);
JButton d = new JButton("-");
pan.add(d);

JRadioButtonMenuItem jrmi1 = new JRadioButtonMenuItem("Checksum");
pan.add(jrmi1);

JLabel lab9=new JLabel("Aperçu de la trame");
pan.add(lab9);

JButton e= new JButton("Valider");
pan.add(e);
JButton g= new JButton("Annuler");
pan.add(g);

f.setContentPane(pan);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
1
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
22 mars 2013 à 19:46
Les GridBagConstraints sont pour les GridBagLayout, à ne pas confondre avec les GridLayout que tu as utilisé. De plus tu n'as pas besoin de faire un extends JFrame...

Quel est le résultat que tu veux obtenir ?
0
snp3109 Messages postés 77 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 10 juillet 2014 3
22 mars 2013 à 20:12
Voici le résultat que je souhaite
https://www.tumblr.com/privacy/consent?redirect=http%3A%2F%2Fpostscriptumfuck.tumblr.com%2Fpost%2F46006393746%2Fpage-java
Le plus important est de respecter le positionnement des Buttom, Label ...
Merci de ton aide KX.
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
23 mars 2013 à 17:21
Page introuvable
La page que vous recherchez n'a pas été trouvée.
0
snp3109 Messages postés 77 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 10 juillet 2014 3
23 mars 2013 à 17:23
J'ai trouvé une solution qui me convient parfaitement. Avec setBounds.

cb=new JComboBox();
cb.setBounds(55,172,63,20);
pan.add(cb);
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
23 mars 2013 à 17:37
C'est ce dont je parlais hier sous le terme de "positionnement absolu"
Si tu veux approfondir : Doing Without a Layout Manager : Absolute Positioning
Je marque ta discussion comme résolue alors ;-)
0