Interface java

Fermé
Miss-Pyary Messages postés 2 Date d'inscription mercredi 21 octobre 2009 Statut Membre Dernière intervention 28 avril 2011 - 13 avril 2011 à 11:59
sakoba2010 Messages postés 157 Date d'inscription lundi 7 février 2011 Statut Membre Dernière intervention 24 juillet 2013 - 13 avril 2011 à 12:11
Salut,tt le monde suis actuellement en stage et suis censée faire une application de gestion de stock, j voulais faire une interface suivant ce module :

http://photos-c.ak.fbcdn.net/hphotos-ak-snc6/216639_2019752692078_1191739046_32492839_7515476_n.jpg

ché po si c'est possible de faire une interface comme celle ci en java.

Si quelqu'un peut m aider j vous serais très reconnaissante
Cette application sera développer sur NetBeans 6.9.1


Merci d avance
A voir également:

2 réponses

C'est tout à fait possible de créer ce genre d'interface en Java en utilisant les librairies Swing et AWT.
Si tu débutes en Swing ça te fera un bon entrainement!

Pour le tableau tu aura probablement besoin de créer un modèle qui te sera propre car la JTable est bien souvent insuffisante pour faire les actions que l'on attend d'un tableur classique.

Je te passe le code d'un modèle de tableur qui pourrai te convenir.


import javax.swing.table.AbstractTableModel;
import java.io.*;

/**
 *
 * @author guillaume.b
 */
        //CLASSE TABLE MODÈLE PERSONNALISÉE
public	class ZModel extends AbstractTableModel implements Serializable{

    private Object[][] data;
    private String[] title;
    /**
     * Constructeur
     * @param data
     * @param title
     */
    public ZModel(Object[][] data, String[] title){
            this.data = data;
            this.title = title;
    }
    /**
     * Retourne le nombre de colonnes
     */
    public int getColumnCount() {
            return this.title.length;
    }
    /**
     * Retourne le nombre de lignes
     */
    public int getRowCount() {
            return this.data.length;
    }
    /**
     * Retourne la valeur à l'emplacement spécifié
     */
    public Object getValueAt(int row, int col) {
            return this.data[row][col];
    }
    public String getColumnName(int col) {
      return this.title[col];
    }

    //Notre méthode
    public void changeColumnName(String[] value) {
            title=value;
    }

    public Object[][] addRow(Object[] data){
            int indice = 0, nbRow = this.getRowCount(), nbCol = this.getColumnCount()-1;
            Object temp[][] = this.data;
            this.data = new Object[nbRow+1][nbCol];
            for(Object[] value : temp)
            this.data[indice++] = value;
            this.data[indice] = data;
            temp = null;
            //Cette méthode permet d'avertir le tableau que les données ont été modifiées
            //Ce qui permet une mise à jours complète du tableau
            this.fireTableDataChanged();
            return this.data;
    }
                    /**
     * Méthode permettant de retirer une ligne du tableau
     * @param position
     */
    public Object[][] removeRow(int position){

            int indice = 0, indice2 = 0, nbRow = this.getRowCount(), nbCol = this.getColumnCount();
            Object temp[][] = new Object[nbRow-1][nbCol];

            for(Object[] value :  this.data){
                    if(indice != position){
                            temp[indice2++] = value;
                    }
                    indice++;
            }
            this.data=new Object[nbRow-1][nbCol];
            this.data = temp;
            temp = null;
            //Cette méthode permet d'avertir le tableau que les données ont été modifiées
            //Ce qui permet une mise à jours complète du tableau
            this.fireTableDataChanged();
            return this.data;
    }
    public Class getColumnClass(int col){
	//On retourne le type de la cellule à la colonne demandée
	//On se moque de la ligne puisque les données sur chaque ligne sont les mêmes
	//On choisit donc la première ligne
	return this.data[0][col].getClass();
    }
    public String[] getColumnNames(){
        return title;
    }

    public Object[][] addColumn(String data){
            int nbRow = this.getRowCount(), nbCol = this.getColumnCount();
            String [] tempo = this.title;
            this.title = new String[nbCol+1];
            for(int i=0;i<nbCol;i++){
                title[i]=tempo[i];
            }
            title[nbCol]=data;
            String tempor;
            tempor = title[nbCol-1];
            title[nbCol-1] = title[nbCol];
            title[nbCol]= tempor;
            Object temp[][] = this.data;
            this.data = new Object[nbRow][nbCol+1];
            for(int i=0;i<nbRow;i++){
                for(int j=0;j<nbCol+1;j++){
                    if(j==nbCol){
                        this.data [i][j]="";
                    }
                    else{
                        this.data[i][j]=temp[i][j];
                    }
                }
            }
            for(int i=0;i<nbRow;i++){
                Object tempor2=this.data[i][nbCol-1];
                this.data[i][nbCol-1] = "";
                this.data[i][nbCol]=tempor2;
            }
            temp = null;
            tempor = null;
            //Cette méthode permet d'avertir le tableau que les données ont été modifiées
            //Ce qui permet une mise à jours complète du tableau
            this.fireTableDataChanged();
            return this.data;
    }

    public Object[][] removeColumn(int position){
        int  nbRow = this.getRowCount(), nbCol = this.getColumnCount();
        int i,j,k;
        Object temp[][] = new Object[nbRow][nbCol-1];
        String[] tempo = new String[nbCol-1];
        for(i=0,j=0;i<nbCol;i++){
            if(i==position);
            else{
            tempo[j++]=title[i];
            }
        }
        title = new String[nbCol-1];
        title=tempo;
        tempo = null;

        for(i=0;i<nbRow;i++){
            for(j=0,k=0;j<nbCol;j++){
                if(j==position);
                else{
                    temp[i][k++]=this.data[i][j];
                }
            }
        }
        this.data=new Object[nbRow][nbCol-1];
        this.data = temp;
        temp = null;
        //Cette méthode permet d'avertir le tableau que les données ont été modifiées
        //Ce qui permet une mise à jours complète du tableau
        this.fireTableDataChanged();
        return this.data;
    }
    /**
     * Méthode permettant de retirer une ligne du tableau
     * @param position
     */
    public boolean isCellEditable(int row, int col){
        if(col==0||col==this.getColumnCount()-1){return true;}
        else if(((String)data[row][0]).isEmpty()){
            return false;
        }
        return true;
    }

    public void setValueAt(Object obj, int row, int col)
    {
        this.data[row][col] = obj;
    }

    public String[] getTitle(){
        return title;
    }

}



N'hésite pas à poser des questions j'ai bossé sur le développement d'un programme quasi similaire.
0
sakoba2010 Messages postés 157 Date d'inscription lundi 7 février 2011 Statut Membre Dernière intervention 24 juillet 2013 15
13 avril 2011 à 12:11
Bien sûr que c'est possible:
Voici là les commandes utilisées :

-Desktop Pane
-Internal Frame
-Split Pane
-Tool Bar
-button, text( avec des images)
-JTable
0