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

Agents de placement/Fenêtres Java Discussion :

Conseils pour une création de fenêtre


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre confirmé Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Par défaut Conseils pour une création de fenêtre
    Bonjour tout le monde !

    J'essaye de redévelopper une appli que j'avais écris en .net et je je souhaiterais refaire en Java.
    J'ai une expérience en dev Java pour des appli Web mais j'ai du mal à créer une IHM pour une appli desktop.

    Voilà ce que je souhaiterais faire : (notez la maîtrise de paint.net )
    Nom : fenetre.jpg
Affichages : 113
Taille : 70,1 Ko

    J'ai commencé par faire un borderLayout pour avoir mon panneau de gauche en largeur fixe et ma partie droite complètement redimensionnable mais après je sèche.
    Quel layout me conseillez vous pour le contenu de la partie gauche ? J'ai regardé le tuto sur le GridBagLayout mais il me semble assez complexe et je me demande si un autre layout plus simple ne répondrait pas à mon besoin.
    Pour la partie droite je compte utiliser un autre BorderLayout qui devrait être suffisant.

    Donc voilà c'est ma première interface graphique en Java et tous les conseils sont les bienvenus !

    Merci d'avance

  2. #2
    Membre confirmé

    Inscrit en
    Février 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2008
    Messages : 36
    Par défaut BoxLayout
    Salut,
    Pour la partie gauche de l'IHM je vous conseille d'utiliser Un BoxLayout qui est simple et pratique dans votre cas (VerticalBox)

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 278
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 278
    Par défaut
    Je t'ai fait un petit exemple de ce que tu pourrais obtenir avec un GridBagLayout. C'est vite fait et donc largement améliorable.

    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
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
     
    import java.awt.BorderLayout;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.Insets;
     
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JSlider;
    import javax.swing.JTable;
    import javax.swing.JTextField;
    import javax.swing.SwingUtilities;
    import javax.swing.table.DefaultTableModel;
     
    public class TestInterface {
     
    	private JFrame fenetre = new JFrame("Test");
     
    	private JPanel panelDroit = new JPanel(new BorderLayout());
    	private JTextField champTexte = new JTextField("Champ texte");
    	private JPanel panelImage = new JPanel();
     
    	private JPanel panelGauche = new JPanel(new BorderLayout());
    	private JPanel contenuPanelGauche = new JPanel();
    	private JLabel label1 = new JLabel("Label1");
    	private JComboBox combo1 = new JComboBox();
    	private JLabel label2 = new JLabel("Label2");
    	private JComboBox combo2 = new JComboBox();
    	private JLabel label3 = new JLabel("Label3");
    	private JComboBox combo3 = new JComboBox();
     
    	private JTable table = new JTable();
    	private JScrollPane scrollPane = new JScrollPane(table);
     
    	private JButton bouton1 = new JButton("Bouton1");
    	private JButton bouton2 = new JButton("Bouton1");
    	private JButton bouton3 = new JButton("Bouton1");
    	private JSlider slider = new JSlider();
     
    	public void initAndDisplay() {
    		fenetre.setLayout(new BorderLayout());
     
    		GridBagLayout gbl = new GridBagLayout();
    		contenuPanelGauche.setLayout(gbl);
    		GridBagConstraints gbc = new GridBagConstraints();
     
    		gbc.anchor = GridBagConstraints.CENTER;
    		gbc.fill = GridBagConstraints.NONE;
     
    		//init panel gauche labels combos
    		gbc.weightx = 0;
    		gbc.weighty = 0;
    		gbc.gridx = 0;
    		gbc.gridy = 0;
    		gbc.insets = new Insets(5, 5, 5, 5);
     
    		contenuPanelGauche.add(label1, gbc);
     
    		gbc.gridx = 1;
    		contenuPanelGauche.add(combo1, gbc);
     
    		gbc.gridx = 0;
    		gbc.gridy = 1;
    		contenuPanelGauche.add(label2, gbc);
     
    		gbc.gridx = 1;
    		contenuPanelGauche.add(combo2, gbc);
     
    		gbc.gridx = 0;
    		gbc.gridy = 2;
    		contenuPanelGauche.add(label3, gbc);
     
    		gbc.gridx = 1;
    		contenuPanelGauche.add(combo3, gbc);
    		//fin init panel gauche labels combos
     
    		//init panel gauche tableau
    		DefaultTableModel model = (DefaultTableModel) table.getModel();
    		model.setColumnIdentifiers(new String[]{"Col1", "Col2"});
     
    		gbc.gridx = 0;
    		gbc.gridy = 3;
    		gbc.gridwidth = 2;
    		contenuPanelGauche.add(scrollPane, gbc);
    		//fin init panel gauche tableau
     
    		//init panel gauche boutons slider
    		gbc.gridx = 0;
    		gbc.gridy = 4;
    		gbc.gridwidth = 1;
    		contenuPanelGauche.add(bouton1, gbc);
     
    		gbc.gridx = 1;
    		contenuPanelGauche.add(bouton2, gbc);
     
    		gbc.gridx = 0;
    		gbc.gridy = 5;
    		gbc.gridwidth = 2;
    		contenuPanelGauche.add(slider, gbc);
     
    		gbc.gridx = 0;
    		gbc.gridy = 6;
    		contenuPanelGauche.add(bouton3, gbc);
    		//fin init panel gauche boutons slider
     
    		panelGauche.add(contenuPanelGauche, BorderLayout.NORTH);
     
    		panelDroit.add(champTexte, BorderLayout.NORTH);
    		panelDroit.add(panelImage, BorderLayout.CENTER);
     
    		fenetre.add(panelDroit, BorderLayout.CENTER);
    		fenetre.add(panelGauche, BorderLayout.WEST);
     
    		fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		fenetre.pack();
    		fenetre.setVisible(true);
    	}
     
    	public static void main(String[] args) {
    		SwingUtilities.invokeLater(new Runnable() {
    			public void run() {
    				TestInterface application = new TestInterface();
    				application.initAndDisplay();
    			}
    		});
     
    	}
    }

  4. #4
    Membre confirmé Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Par défaut
    Alors là je suis impressionné.

    Merci infiniment à vous deux. Je vais partir sur le code de fr1man pour comprendre le GridBagLayout et l'adapter aux petits oignons

    La seule chose qu'il me reste à trouver c'est comment faire en sorte que le tableau du panel de gauche soit redimensionnable en hauteur mais je n'ai pas encore cherché donc je vais m'y atteler ce soir.

    Encore merci beaucoup pour cette solution clef en main

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conseil pour la création d'une base de données
    Par ninouee dans le forum Débuter
    Réponses: 4
    Dernier message: 28/09/2014, 13h10
  2. [MySQL-5.6] Demande de conseil pour la création d'une table
    Par steel-finger dans le forum MySQL
    Réponses: 1
    Dernier message: 04/08/2014, 11h04
  3. conseils pour une application multi-fenêtres
    Par p1xl_01 dans le forum C#
    Réponses: 14
    Dernier message: 25/05/2010, 15h29
  4. Réponses: 4
    Dernier message: 22/09/2004, 09h17
  5. [Debutant(e)]conseil pour une liste ?
    Par Tymk dans le forum Débuter
    Réponses: 5
    Dernier message: 05/08/2004, 14h33

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