Creer un interface [Résolu/Fermé]

Signaler
-
 killpatron -
Bonjour, comment je peux creer dans une seule fenetre un tableau au milieu,5 boutons successives dans l'est ,5 boutons successives dans l'ouest ?
Je sais faire chacun dans une fenetre a part mais le tout dans une meme fenetre non.
Merci d'avance.



1 réponse

Messages postés
16361
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 juin 2021
2 843
Bonjour,

Il faut configurer ton JLabel avec un BorderLayout (par défaut) et ajouter trois JPanel configurés comme tu l'as fait avec tes fenêtre séparées.

Si tu as tes 3 codes individuels je peux t'aider à faire la fusion.
Messages postés
16361
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 juin 2021
2 843
Et ils sont où les codes ?
code1:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

public class aaaaa {
  public static void main(String args[]) {
        final String labels[] = { "BEN PLAST", "BOUDRANT", "C2J TRANDING", "COOPERATIVES DES HANDICAPES MOTEURS", "csp", "EL BARAKA", "ELBEZ", "EUROINK", "FORBO", "GROUP IMPRIM" };
    final DefaultComboBoxModel model = new DefaultComboBoxModel(labels);

    JFrame frame = new JFrame("Fournisseur");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container contentPane = frame.getContentPane();

    JPanel panel = new JPanel();
    JComboBox comboBox1 = new JComboBox(model);
    comboBox1.setMaximumRowCount(5);
    comboBox1.setEditable(true);

    JComboBox comboBox2 = new JComboBox(model);
    comboBox2.setMaximumRowCount(5);
    comboBox2.setEditable(true);
    panel.add(comboBox1);
    panel.add(comboBox2);
    contentPane.add(panel, BorderLayout.NORTH);

    JList jlist = new JList(model);
    JScrollPane scrollPane = new JScrollPane(jlist);
    contentPane.add(scrollPane, BorderLayout.CENTER);

    JButton button = new JButton("Add");
    contentPane.add(button, BorderLayout.SOUTH);
    ActionListener actionListener = new ActionListener() {
      public void actionPerformed(ActionEvent actionEvent) {
        int index = (int) (Math.random() * labels.length);
        model.addElement(labels[index]);
      }
    };
    button.addActionListener(actionListener);

    frame.setSize(400, 400);
    frame.setVisible(true);
  }
}
code 2:
package m;


 import javax.swing.JButton;
 import javax.swing.JFrame;
 import javax.swing.JPanel;

 public class fenetre extends JFrame{
   private JPanel pan = new JPanel();
   private JButton bouton = new JButton("ACTUALISER");

   public fenetre(){
     this.setTitle("Animation");
     this.setSize(300, 150);
     this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     this.setLocationRelativeTo(null);
     //Ajout du bouton à notre content pane
     pan.add(bouton);
     this.setContentPane(pan);
     this.setVisible(true);
   }       


   public static void main(String[] args){


     fenetre fen = new fenetre();
     
     
     
     fen.setVisible(true);
     
     
     
   
 }
 }
code 3:
package m;



import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

public class fenetre {
  public static void main(String args[]) {
        final String labels[] = { "Alcool", "ENCRE", "colle", "solvant", "sachet", "nettoyant", "huile", "scotch", "FORBO", "GROUP IMPRIM" };
    final DefaultComboBoxModel model = new DefaultComboBoxModel(labels);

    JFrame frame = new JFrame("Fournisseur");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container contentPane = frame.getContentPane();

    JPanel panel = new JPanel();
    JComboBox comboBox1 = new JComboBox(model);
    comboBox1.setMaximumRowCount(5);
    comboBox1.setEditable(true);

    JComboBox comboBox2 = new JComboBox(model);
    comboBox2.setMaximumRowCount(5);
    comboBox2.setEditable(true);
    panel.add(comboBox1);
    panel.add(comboBox2);
    contentPane.add(panel, BorderLayout.NORTH);

    JList jlist = new JList(model);
    JScrollPane scrollPane = new JScrollPane(jlist);
    contentPane.add(scrollPane, BorderLayout.CENTER);

    JButton button = new JButton("Add");
    contentPane.add(button, BorderLayout.SOUTH);
    ActionListener actionListener = new ActionListener() {
      public void actionPerformed(ActionEvent actionEvent) {
        int index = (int) (Math.random() * labels.length);
        model.addElement(labels[index]);
      }
    };
    button.addActionListener(actionListener);

    frame.setSize(400, 400);
    frame.setVisible(true);
  }
}
code 4:
import java.awt.GridLayout; 
import javax.swing.JButton;
import javax.swing.JFrame;
 
public class fenetre extends JFrame{
  public fenetre(){
    this.setTitle("GESTION DE MP ET CONSOMMABLE");
    this.setSize(100, 600);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setLocationRelativeTo(null);
    //On définit le layout à utiliser sur le content pane
    //Trois lignes sur deux colonnes
    this.setLayout(new GridLayout(8, 1));
    //On ajoute le bouton au content pane de la JFrame
    this.getContentPane().add(new JButton("Accueil"));
    this.getContentPane().add(new JButton("Mvt cons et encre"));
    this.getContentPane().add(new JButton("Etat encre et consommables"));
    this.getContentPane().add(new JButton("Etat inventaires  CE"));
    this.getContentPane().add(new JButton("Etat des Arrivages"));
    this.getContentPane().add(new JButton("Fiche création de Fournisseur"));
    this.getContentPane().add(new JButton("Fiche Création d'Article"));
    this.getContentPane().add(new JButton("Actualiser cout"));
    
    this.setVisible(true);
  }      
}
son main:
package snippet;



public class main {
 public static void main(String[] args){


     fenetre fen = new fenetre();
     
     
     
     fen.setVisible(true);
     
     

}
}
code 5:
package snippet;

import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JScrollPane;
import javax.swing.JTable;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;

import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer;

//CTRL + SHIFT + O pour générer les imports
public class Snippet extends JFrame {

  private JTable tableau;
  private JButton change = new JButton("Changer la taille");
  private JPanel container = new JPanel();

  private JComboBox combo = new JComboBox();

  private JLabel label = new JLabel("Fournisseur");



  public Snippet(){
    this.setLocationRelativeTo(null);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setTitle("ETAT CONSOMMABLE ET ENCRE");
    this.setSize(600, 600);

      

    Object[][] data = {   
      {"ART DESIGN INTERNATIONAL", "Sachet HD Transparent (80*20*110)", "400.0","0","19/10/2016","ancre"},
      {"BEN PLAST", "Huile 68", "200.0","10","11/10/2016","solvant"},
      {"BOUDRANT", "Huile Para 100 (10L)", "40.0","36","20/10/2016","penis"},
      {"C2J TRANDING", "Encre OR Riche Pale (RADIOR)", "60.0","64","21/10/2016","Alcool"}
    };

    String  title[] = {"Fournisseur", "Désignation", "Qté MVT","prix unit","date","Famille"};

    this.tableau = new JTable(data, title);
    this.tableau.setRowHeight(30);
    this.getContentPane().add(new JScrollPane(tableau), BorderLayout.CENTER);
    container.setBackground(Color.white);
    container.setLayout(new BorderLayout());
    combo.setPreferredSize(new Dimension(100, 20));
  //CTRL + SHIFT + O pour générer les imports
    class ButtonRenderer extends JButton implements TableCellRenderer{

      /**


* 

*/
 private static final long serialVersionUID = 1L;

 public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean isFocus, int row, int col) {
        //On écrit dans le bouton ce que contient la cellule
        setText((value != null) ? value.toString() : "");
        //On retourne notre bouton
        return this;
      }
    };
    
    this.tableau.getColumn("Fournisseur").setCellRenderer(new ButtonRenderer()); 
    this.tableau.getColumn("Désignation").setCellRenderer(new ButtonRenderer());
    this.tableau.getColumn("prix unit").setCellRenderer(new ButtonRenderer());
    this.tableau.getColumn("date").setCellRenderer(new ButtonRenderer());
    this.tableau.getColumn("Famille").setCellRenderer(new ButtonRenderer());
    this.tableau.getColumn("Qté MVT").setCellRenderer(new ButtonRenderer());
  //CTRL + SHIFT + O pour générer les imports
    class TableComponent extends DefaultTableCellRenderer {

      /**


* 

*/
  private static final long serialVersionUID = 1L;

 public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        if (value instanceof JButton)
          return (JButton) value;
        //Lignes ajoutées
        else if(value instanceof JComboBox)
          return (JComboBox) value;
        else
          return this;
      }
    };
    this.tableau.setDefaultRenderer(JComponent.class, new TableComponent());

  }
  
  public static void main(String[] args){
    Snippet
    fen = new Snippet();
    fen.setVisible(true);
  }
}
son main:
import java.awt.Graphics;

public class main









{

  public static void main(String[] args){


    Snippet fen = new Snippet();
    
    
    
    fen.setVisible(true);
    
    
    
  }
}
Je veux obtenir le reultat suivant:
au milieu :le resultat de code5
a gauche:le resultat de code4
a droite:le resultat de code1
au dessus:le resultat de code 3 puis le resultat de code2
Messages postés
16361
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 juin 2021
2 843
J'ai essayé de faire la fusion en changeant le moins de code possible pour que tu t'y retrouves, les principales modifications concernant mes explications d'hier : on remplaces les JFrame par des JPanel et on mets tout ça dans une JFrame.

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
import javax.swing.table.*;

class Code1 extends JPanel {
    public Code1() {
        final String labels[] = { "BEN PLAST", "BOUDRANT", "C2J TRANDING", "COOPERATIVES DES HANDICAPES MOTEURS", "csp", "EL BARAKA", "ELBEZ", "EUROINK", "FORBO", "GROUP IMPRIM" };
        final DefaultComboBoxModel model = new DefaultComboBoxModel(labels);

        Container contentPane = this;

        JPanel panel = new JPanel();
        JComboBox comboBox1 = new JComboBox(model);
        comboBox1.setMaximumRowCount(5);
        comboBox1.setEditable(true);

        JComboBox comboBox2 = new JComboBox(model);
        comboBox2.setMaximumRowCount(5);
        comboBox2.setEditable(true);
        panel.add(comboBox1);
        panel.add(comboBox2);
        contentPane.add(panel, BorderLayout.NORTH);

        JList jlist = new JList(model);
        JScrollPane scrollPane = new JScrollPane(jlist);
        contentPane.add(scrollPane, BorderLayout.CENTER);

        JButton button = new JButton("Add");
        contentPane.add(button, BorderLayout.SOUTH);
        ActionListener actionListener = new ActionListener() {
            public void actionPerformed(ActionEvent actionEvent) {
                int index = (int) (Math.random() * labels.length);
                model.addElement(labels[index]);
            }
        };
        button.addActionListener(actionListener);

        this.setSize(400, 400);
        this.setVisible(true);
    }
}

class Code2 extends JPanel {
    private JButton bouton = new JButton("ACTUALISER");

    public Code2() {
        this.setSize(300, 150);
        // Ajout du bouton à notre content pane
        add(bouton);
    }

}

class Code3 extends JPanel {
    public Code3() {
        final String labels[] = { "Alcool", "ENCRE", "colle", "solvant", "sachet", "nettoyant", "huile", "scotch", "FORBO", "GROUP IMPRIM" };
        final DefaultComboBoxModel model = new DefaultComboBoxModel(labels);

        Container contentPane = this;

        JPanel panel = new JPanel();
        JComboBox comboBox1 = new JComboBox(model);
        comboBox1.setMaximumRowCount(5);
        comboBox1.setEditable(true);

        JComboBox comboBox2 = new JComboBox(model);
        comboBox2.setMaximumRowCount(5);
        comboBox2.setEditable(true);
        panel.add(comboBox1);
        panel.add(comboBox2);
        contentPane.add(panel, BorderLayout.NORTH);

        JList jlist = new JList(model);
        JScrollPane scrollPane = new JScrollPane(jlist);
        contentPane.add(scrollPane, BorderLayout.CENTER);

        JButton button = new JButton("Add");
        contentPane.add(button, BorderLayout.SOUTH);
        ActionListener actionListener = new ActionListener() {
            public void actionPerformed(ActionEvent actionEvent) {
                int index = (int) (Math.random() * labels.length);
                model.addElement(labels[index]);
            }
        };
        button.addActionListener(actionListener);
    }
}

class Code4 extends JPanel {

    public Code4() {

        // On définit le layout à utiliser sur le content pane
        // Trois lignes sur deux colonnes
        setLayout(new GridLayout(8, 1));
        // On ajoute le bouton au content pane de la JFrame
        add(new JButton("Accueil"));
        add(new JButton("Mvt cons et encre"));
        add(new JButton("Etat encre et consommables"));
        add(new JButton("Etat inventaires  CE"));
        add(new JButton("Etat des Arrivages"));
        add(new JButton("Fiche création de Fournisseur"));
        add(new JButton("Fiche Création d'Article"));
        add(new JButton("Actualiser cout"));
    }
}

class Code5 extends JPanel {

    private JTable tableau;
    private JButton change = new JButton("Changer la taille");
    private JPanel container = new JPanel();

    private JComboBox combo = new JComboBox();

    private JLabel label = new JLabel("Fournisseur");

    public Code5() {
        this.setSize(600, 600);

        Object[][] data = { { "ART DESIGN INTERNATIONAL", "Sachet HD Transparent (80*20*110)", "400.0", "0", "19/10/2016", "ancre" }, { "BEN PLAST", "Huile 68", "200.0", "10", "11/10/2016", "solvant" }, { "BOUDRANT", "Huile Para 100 (10L)", "40.0", "36", "20/10/2016", "penis" }, { "C2J TRANDING", "Encre OR Riche Pale (RADIOR)", "60.0", "64", "21/10/2016", "Alcool" } };

        String title[] = { "Fournisseur", "Désignation", "Qté MVT", "prix unit", "date", "Famille" };

        this.tableau = new JTable(data, title);
        this.tableau.setRowHeight(30);
        this.add(new JScrollPane(tableau), BorderLayout.CENTER);
        container.setBackground(Color.white);
        container.setLayout(new BorderLayout());
        combo.setPreferredSize(new Dimension(100, 20));
        // CTRL + SHIFT + O pour générer les imports
        class ButtonRenderer extends JButton implements TableCellRenderer {

            private static final long serialVersionUID = 1L;

            public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean isFocus, int row, int col) {
                // On écrit dans le bouton ce que contient la cellule
                setText((value != null) ? value.toString() : "");
                // On retourne notre bouton
                return this;
            }
        }

        this.tableau.getColumn("Fournisseur").setCellRenderer(new ButtonRenderer());
        this.tableau.getColumn("Désignation").setCellRenderer(new ButtonRenderer());
        this.tableau.getColumn("prix unit").setCellRenderer(new ButtonRenderer());
        this.tableau.getColumn("date").setCellRenderer(new ButtonRenderer());
        this.tableau.getColumn("Famille").setCellRenderer(new ButtonRenderer());
        this.tableau.getColumn("Qté MVT").setCellRenderer(new ButtonRenderer());
        // CTRL + SHIFT + O pour générer les imports
        class TableComponent extends DefaultTableCellRenderer {

            private static final long serialVersionUID = 1L;

            public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
                if (value instanceof JButton)
                    return (JButton) value;
                // Lignes ajoutées
                else if (value instanceof JComboBox)
                    return (JComboBox) value;
                else
                    return this;
            }
        }
        this.tableau.setDefaultRenderer(JComponent.class, new TableComponent());

    }
}

public class Code0 extends JFrame {

    public Code0() {
        add(new Code5(), BorderLayout.CENTER);
        add(new Code4(), BorderLayout.WEST);
        add(new Code1(), BorderLayout.EAST);
        add(new Code3(), BorderLayout.NORTH);
        add(new Code2(), BorderLayout.SOUTH);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        JFrame frame = new Code0();
        frame.pack();
        frame.setVisible(true);
    }
}

Remarque : maintenant il reste un gros travail d'harmonisation pour que les composants codés individuellement forment un ensemble cohérent, parce que pour l'instant le résultat est plutôt moche...

À voir : A Visual Guide to Layout Managers
Merci beaucoup.
C'est trés gentil.