IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Java Discussion :

Organiser un JPanel


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    eternel apprenti en informatique
    Inscrit en
    Juillet 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : eternel apprenti en informatique

    Informations forums :
    Inscription : Juillet 2012
    Messages : 31
    Par défaut Organiser un JPanel
    Bonjour a tous ,
    Voilà j'essaie d'organiser une JPanel mais je n'y arrive pas malgré avoir essayer avec l'outil GridLayout (je pense que je l'utilise mal)
    De plus comme vous pourrez le voir le Jbutton que j'ai placé est excessivement grand et mon JPanel(contenant des label et textfield) trop petit!
    POuvez-vous me donner un coup de pouce pour m'en sortir!
    Merci pour toute réponse !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    public class PanelElement {
     
    	private JPanel panelID;
    	private JPanel panelSN;
    	private JPanel panelLN;
     
     
    	public PanelElement(){
    		this.panelID = createPanelID();
    		this.panelSN = createPanelShortName();
    		this.panelLN = createPanelLongName();
    	}
     
    	public static JPanel createPanelID(){
    		JPanel panelID = new JPanel(new GridLayout(1,2));
    		JLabel infoId = new JLabel("Id");
    		JTextField textID = new JTextField(null);
    		textID.setPreferredSize(new Dimension(1, 1));
    		panelID.add(infoId);
    		panelID.add(textID);
    		return panelID;
    	}
     
    	public static JPanel createPanelShortName(){
    		JPanel panelShortName = new JPanel(new GridLayout(1,2));
    		JLabel infoShortName = new JLabel("ShortName");
    		JTextField textShortName = new JTextField(null);
    		textShortName.setMaximumSize( new Dimension(1,1));
    		panelShortName.add(infoShortName);
    		panelShortName.add(textShortName);
    		return panelShortName;
    	}
     
    	public static JPanel createPanelLongName(){
    		JPanel panellongName = new JPanel(new GridLayout(1,2));
    		JLabel infolongName = new JLabel("longName");
    		JTextField textlongName = new JTextField(null);
    		textlongName.setMaximumSize( new Dimension(1,1));
    		panellongName.add(infolongName);
    		panellongName.add(textlongName);
    		return panellongName;
    	}
     
     
    	public  JPanel panelInfo(){
     
    		PanelElement element = new PanelElement();
     
    		JPanel allPanel= new JPanel(new GridLayout(10,1));
     
     
    		/*ajout de tout les panel dans un panel principale*/
    		allPanel.add(element.panelID,BorderLayout.WEST);
    		allPanel.add(element.panelSN,BorderLayout.WEST);
    		allPanel.add(element.panelLN,BorderLayout.WEST);
    		allPanel.setBounds(0, 0, 500, 400);
     
    		return allPanel;
    	}
     
    	public JPanel panelBouton(){
    		JPanel boutonPanel = new JPanel(new GridLayout(1,3));
    		JButton Bvalider = new JButton("Valider");
    		//Bvalider.setBounds(0, 0, 10, 5);
    		boutonPanel.add(Bvalider);
    		return boutonPanel;
    	}
     
    	public JPanel panelComposite(){
    		PanelElement element = new PanelElement();
    		JPanel compositePanel = new JPanel(new GridLayout(2,1));
    		compositePanel.add(element.panelInfo());
    		compositePanel.add(element.panelBouton(),BorderLayout.SOUTH);
    		return compositePanel;
     
     
    	}
     
    	public static void main(String[] args) {
    		JFrame frame = new JFrame("Information Enseignement Normal");
    		Container pane = frame.getContentPane( );
    		pane.setLayout(new GridLayout(3,1));
     
    		PanelElement element = new PanelElement();
     
    		pane.add(element.panelComposite(),BorderLayout.CENTER);
    		frame.setSize(500,800);
    		//frame.pack();
    		//frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
    		frame.setVisible(true);
    	}
    }

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2013
    Messages : 18
    Par défaut
    Une petite image du résultat voulu, avec les différents panels qui le composent pourrait t'aider, et nous aider à répondre

  3. #3
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Décembre 2013
    Messages : 17
    Par défaut slt
    bonjour je te conseil plutot d'utiliser des setBounds, donc tu devra definir pour ton pannel principal un setLayout(null)

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 097
    Par défaut
    Il faut éviter a TOUT PRIX des nullLayout et des setBounds.

    Ensuite tu as mélanges des layout ainsi que l'ajout de composant (Tu mets un Layout GridLayout puis tu places des elements avec add(element, BorderLayout.WEST) ce qui a mon avis ne vas pas.

    Ensuite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    textID.setPreferredSize(new Dimension(1, 1));
    Des dimensions de 1 pixels ca va pas aider (mais la n'est pas le problème).

    Mais sinon ne sachant pas ce que tu veux visuellement je pourrais ne proposer que cette maigre correction (qui n'en est pas vraiment une mais bon...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    import java.awt.BorderLayout;
    import java.awt.Container;
    import java.awt.Dimension;
    import java.awt.GridLayout;
     
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
     
    public class PanelElement {
     
    	private JPanel panelID;
    	private JPanel panelSN;
    	private JPanel panelLN;
     
     
    	public PanelElement(){
    		this.panelID = createPanelID();
    		this.panelSN = createPanelShortName();
    		this.panelLN = createPanelLongName();
    	}
     
    	public static JPanel createPanelID(){
    		JPanel panelID = new JPanel(new GridLayout(1,2));
    		JLabel infoId = new JLabel("Id");
    		JTextField textID = new JTextField(null);
    		//textID.setPreferredSize(new Dimension(1, 1));
    		panelID.add(infoId);
    		panelID.add(textID);
    		return panelID;
    	}
     
    	public static JPanel createPanelShortName(){
    		JPanel panelShortName = new JPanel(new GridLayout(1,2));
    		JLabel infoShortName = new JLabel("ShortName");
    		JTextField textShortName = new JTextField(null);
    	//	textShortName.setMaximumSize( new Dimension(1,1));
    		panelShortName.add(infoShortName);
    		panelShortName.add(textShortName);
    		return panelShortName;
    	}
     
    	public static JPanel createPanelLongName(){
    		JPanel panellongName = new JPanel(new GridLayout(1,2));
    		JLabel infolongName = new JLabel("longName");
    		JTextField textlongName = new JTextField(null);
    	//	textlongName.setMaximumSize( new Dimension(1,1));
    		panellongName.add(infolongName);
    		panellongName.add(textlongName);
    		return panellongName;
    	}
     
     
    	public  JPanel panelInfo(){
     
    		PanelElement element = new PanelElement();
    		JPanel allPanel= new JPanel(new GridLayout(3,1));
    		/*ajout de tout les panel dans un panel principale*/
    		allPanel.add(element.panelID);
    		allPanel.add(element.panelSN);
    		allPanel.add(element.panelLN);
    		return allPanel;
    	}
     
    	public JPanel panelBouton(){
    		JPanel boutonPanel = new JPanel(new GridLayout(1,3));
    		JButton Bvalider = new JButton("Valider");
    		//Bvalider.setBounds(0, 0, 10, 5);
    		boutonPanel.add(Bvalider);
    		return boutonPanel;
    	}
     
    	public JPanel panelComposite(){
    		PanelElement element = new PanelElement();
    		JPanel compositePanel = new JPanel(new BorderLayout());
    		compositePanel.add(element.panelInfo(), BorderLayout.CENTER);
    		compositePanel.add(element.panelBouton(),BorderLayout.SOUTH);
    		return compositePanel;
    	}
     
    	public static void main(String[] args) {
    		JFrame frame = new JFrame("Information Enseignement Normal");
    		Container pane = frame.getContentPane( );
    		pane.setLayout(new BorderLayout());
    		PanelElement element = new PanelElement(); 
    		pane.add(element.panelComposite(),BorderLayout.CENTER);
    		frame.setSize(500,800);
    		frame.setVisible(true);
    	}
    }
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [Jpanel] organisation de boutons dans un JPanel
    Par Ceubex dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 23/09/2010, 12h14
  2. Pb organisation plusieurs Jpanels ds Jframe
    Par rantanplan08 dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 10/12/2007, 21h15
  3. [Packages] Problème d'organisation
    Par lolo... dans le forum JBuilder
    Réponses: 5
    Dernier message: 22/04/2003, 13h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo