Interface graphique dynamique(simplex) java

ibtihel -  
KX Messages postés 19031 Statut Modérateur -
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

1 réponse

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Tu peut utiliser Swing, mais si tu rajoutes de l'affichage graphique ça va considérablement ralentir ton programme !
    1
    1. ibtihel
       
      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
    2. KX Messages postés 19031 Statut Modérateur 3 020
       
      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