Interface java

Miss-Pyary Messages postés 8 Statut Membre -  
sakoba2010 Messages postés 165 Statut Membre -
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

Gui
 
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 165 Statut Membre 15
 
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