Interface graphique dynamique(simplex) java

Fermé
ibtihel - 19 déc. 2011 à 23:43
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 20 déc. 2011 à 02:26
Bonsoir,

j'ai besoin de faire une interface graphique qui change selon les données: pour résoudre un problème de simplex: l'utilisateur saisie le nombre de contrainte et le nombre de variable selon ces derniers une interface vas se-présenter en vérifient ce qui est demander
comment faire ???
merci
A voir également:

1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
20 déc. 2011 à 00:11
Tu peut utiliser Swing, mais si tu rajoutes de l'affichage graphique ça va considérablement ralentir ton programme !
1
le problème que je sais pas comment faire une interface flexible qui change selon la demande et le besoin de l'utilisateur : s'il saisie x variables et y contraintes il trouveras une interface qui répond a ces besoins
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
20 déc. 2011 à 02:26
Exemple (ce n'est pas très joli, mais tu personnaliseras ça comme tu veux) :

import java.awt.GridLayout;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;

public class Simplex extends JFrame
{
    private static final long serialVersionUID = 1;

    private static int demanderTaille(String message)
    {
        String s = JOptionPane.showInputDialog(null,message,"Entrez un entier", JOptionPane.PLAIN_MESSAGE);
        return Integer.parseInt(s);
    }

    private final int n;
    private final int m;
    private final JTextArea[][] A;
    private final JTextArea[] B;
    private final JTextArea[] C;
    private final JTextArea[] X;

    public Simplex()
    {
        this(
            demanderTaille("Nombre de variables ?"),
            demanderTaille("Nombre de contraintes ?"));
    }
    
    public Simplex(int m, int n)
    {
        this.m = m;
        this.n = n;
        
        A = new JTextArea[n][m];
        B = new JTextArea[n];
        C = new JTextArea[m];
        X = new JTextArea[m];
        
        setSize(50*(2*m+1)+0, 20*(n+2)+50);
        setTitle("Simplex "+m+"x"+n);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
                
        GridLayout layout = new GridLayout(n+2,2*m+1,0,0);
        
        setLayout(layout);
        
        for (int i=0; i<n; i++)
        {
            for (int j=0; j<m; j++)
            {
                A[i][j] = new JTextArea("0");
                add(A[i][j]);
                
                if (j==m-1)
                    add(new JTextArea("* X"+(j+1)+" <="));
                else
                    add(new JTextArea("* X"+(j+1)+" + "));
            }
            
            B[i] = new JTextArea("0");
            
            add(B[i]);
        }

        for (int j=0; j<m; j++)
        {
            C[j] = new JTextArea("0");
            add(C[j]);
            
            if (j==m-1)
            {
                add(new JTextArea("* X"+(j+1)+" = "));
                add(new JTextArea("Z"));
            }
            else
                add(new JTextArea("* X"+(j+1)+" + "));
        }
                
        
        for (int j=0; j<m; j++)
        {
            add(new JTextArea("X"+(j+1)+" = "));
            
            X[j] = new JTextArea("0");
            add(X[j]);
        }
                        
        setVisible(true);
    }
    
    public static void main(String...args)
    {
        new Simplex();
    }
}
0