Comment resoudre ce probleme d'affichage apres un clic sur un boutton

Résolu
etudiag Messages postés 12 Date d'inscription mardi 30 mai 2006 Statut Membre Dernière intervention 11 juillet 2006 - 12 juin 2006 à 15:14
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 14 juin 2006 à 10:51
Voici le code source (programme en debut qui fait la resolution des problemes par la methode du simplexe) veuillez voir dans votre environnement et voir le bug d'affichage apres le clic sur le boutton valider                                        */////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class FenetreSimplexe extends JFrame implements ActionListener  {
 
 Toolkit tk = Toolkit.getDefaultToolkit();
 FlowLayout f =new FlowLayout();
 Dimension d =tk.getScreenSize();
 int larg =d.width;
 int haut =d.height;
 Container c =this.getContentPane();
 int sauve,n;
 JScrollPane echelle;
 
 //attr page 1//
 Label titre=new Label("Fonction objective");
 String [] choix = {"Max","Min"};
 JComboBox choi= new JComboBox(choix); Label z new Label("Z ");
 JTextField [] jt;
 Label l =new Label("Saisir le nombre de variables de decisions : ");
 Label []var ;
 JTextField t=new JTextField(5);
 JButton b=new JButton("Valider");
 JPanel pan0= new JPanel();
 JPanel pan01= new JPanel();
 JPanel pan02= new JPanel();
 JPanel pan03= new JPanel();
 JButton suivant = new JButton("Suivant");
 //fin attr page 1//
 
 //attr page2//
 JPanel pan1=new JPanel();
 
 public FenetreSimplexe(){
  setTitle("Resolution par la methode du simplexe");
  setSize(d);
  this.setDefaultCloseOperation(EXIT_ON_CLOSE);
  pan01.setBackground(Color.CYAN);
  pan02.setBackground(Color.CYAN);
  pan03.setBackground(Color.CYAN);
  pan0.setBackground(Color.BLACK);
  pan0.setLayout(null);
  c.setLayout(null);
  pan0.setBounds(0,0,larg,haut);
  pan01.setLayout(new FlowLayout(FlowLayout.CENTER,13,13));
  pan03.setLayout(new FlowLayout(FlowLayout.LEFT,5,7));
  pan01.setBounds(0,0,larg,190);
  pan02.setBounds(0,190,170,haut-190);
  pan03.setBounds(170,190,larg-170,haut-300);
     c.add(pan0);
  pan0.add(pan01);
  pan0.add(pan02);
  pan0.add(pan03);
  titre.setFont(new Font("Garamond",1,80));
  pan01.add(titre);
  choi.setPreferredSize(new Dimension(110,30));
  pan02.add(choi);
  z.setFont(new Font("Arial",1,19));
  pan02.add(z);
  l.setFont(new Font("Arial",1,14));
  pan01.add(l);
  pan01.add(t);
  pan01.add(b);
  b.addActionListener(this);
  sauve=0;
  t.setDocument(new LimitedText1());
 




 }
 
 public void actionPerformed(ActionEvent e){
  int i;
  if ( ! t.getText().matches("[0-9]*")) {
            JOptionPane.showMessageDialog(null,"Merci de ne taper que des chiffres.","Erreur !",JOptionPane.ERROR_MESSAGE);
            t.setText("");
        }
 
  else if(Integer.parseInt(t.getText())>15){
   JOptionPane.showMessageDialog(null,"Merci de taper un nombre entre 1 et 15.","Nombre tres grand !",JOptionPane.ERROR_MESSAGE);
   t.setText("");
  }
   else{
 
   for(i=0;i<sauve;i++){
   pan03.remove(var[i]);
   pan03.remove(jt[i]);
   }
   pan03.repaint();
 




  if (t.getText().equals("")==false)
  {
  n =Integer.parseInt(t.getText());
  sauve=n;
  jt=new JTextField[n];
  var=new Label[n];
  for(i=0;i<n;i++){
   jt[i]=new JTextField();
   jt[i].setDocument(new LimitedText());
   jt[i].setPreferredSize(new Dimension(100,30));
   jt[i].setFont(new Font("Arial",0,17));
   if (i!=n-1)
   var[i]=new Label("x"+(i+1)+" +");
   else
   var[i]=new Label("x"+(i+1));




   var[i].setSize(new Dimension(30,25));
   var[i].setFont(new Font("Arial",0,14));
   pan03.add(jt[i]);
   pan03.add(var[i]);
   pan03.repaint();




  
  }
 
  pan03.validate();




 }




 }
}
}
*///////////////////////////////////////////*
public class execution {




 public static void main(String[] args) {
 FenetreSimplexe fen = new FenetreSimplexe();
 fen.setVisible(true);




 }




}
*///////////////////////////////////////////////////////////////////////Fin//////////////////////////////////////////////////////////////////////////*
Merci a l'avance pour votre aide

14 réponses

etudiag Messages postés 12 Date d'inscription mardi 30 mai 2006 Statut Membre Dernière intervention 11 juillet 2006
14 juin 2006 à 10:02
Merci Twinuts pour tes reponses, le probleme est resolu, en fait les JLabel lors de son creation en cliquant sur le boutton de creation ne fait pas les bugs de l'affichage alors que les Label fait des bugs lors de la creation et lors de la repaint() du panneau.
Merci encore.
3
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
12 juin 2006 à 15:58
heu manque des classe dans ton post puis merci d'ecrire en petit

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
12 juin 2006 à 17:28
Salut,


primier bug de ton code tu melange awt et swing (utilisation de
java.awt.Label) et il faut eviter ce genre de choses utilise
javax.swing.JLabel.


ensuite il manque LimitedText1et LimitedText.


(je rejoins sheorogath stp ecris plus petit)

WORA
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
12 juin 2006 à 18:45
ta plus de patience que moi ^^ j'attendais d'avoir les classe avant :p
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
12 juin 2006 à 18:59
Lol normale c'est lundi pas envie de me stress le lundi sinon je te
racompte pas comment je vais avoir les nerf à vif vendredi (haaaaaaaa
vendredi j'en reves)

WORA
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
12 juin 2006 à 19:08
lol moi demain j'ai le bac de francais !
la prog me detend^^
surtout depuis que j'ai resolu mon bug sur les image ^^
je n'ai pas eut besoin de tes classe je suis passe par
les ImageIcon
0
etudiag Messages postés 12 Date d'inscription mardi 30 mai 2006 Statut Membre Dernière intervention 11 juillet 2006
13 juin 2006 à 10:06
Merci d'abord pour vos reponses et desole pour le police grand, voici les classes LimitedText et LimitedText1
*//////////////////////////////////////////////////////////////////////////////////////////*
class LimitedText extends DefaultStyledDocument {
    //pour limiter à 10 positions
    public void insertString(int offs, String str, AttributeSet a)
    throws BadLocationException {
        if ((getLength() + str.length()) <= 10) //pour modifier le nb max a saisir
            super.insertString(offs, str, a);
    }
*//////////////////////////////////////////////////////////////////////////////////////////*
class LimitedText1 extends DefaultStyledDocument {
    //pour limiter à 10 positions
    public void insertString(int offs, String str, AttributeSet a)
    throws BadLocationException {
        if ((getLength() + str.length()) <= 2) //pour modifier le nb max a saisir
            super.insertString(offs, str, a);
    }
*////////////////////////////////////////////////////////////////////////////////////////////*

Merci encore sheorogath et Twinuts pour vos reponses.
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
13 juin 2006 à 10:21
Salut,


tu veux que l'on voit quel bug?

WORA
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
13 juin 2006 à 10:25
De plus si tu veux que les gens puissent t'aider vite fait bien fait il
va vraiment te falloir faire un effort dans le nomage de tes
variable  pasque la au bout de la 10eme ligne j'en ai deja raz le
bol de voir des variables c,pane0,f,tk,...... pour moi ca veux rien
dire c'est noms hors la premiere cause de bug reste la presentation et
la lisibilité d'un code

WORA
0
etudiag Messages postés 12 Date d'inscription mardi 30 mai 2006 Statut Membre Dernière intervention 11 juillet 2006
13 juin 2006 à 11:55
je vais passer apres pour nommer les variables et faire les commentaires.
Mais si vous pouvez faire une execution et voir le bug d'affich.
Merci 
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
13 juin 2006 à 12:19
Explique deja le type de bug.......... suis pas devin de plus avant de
demander de l'aide au gens on s'arrange pour poster un code lisible et
non un truc avec des a,b,c,z en guise de nom de variables....

WORA
0
etudiag Messages postés 12 Date d'inscription mardi 30 mai 2006 Statut Membre Dernière intervention 11 juillet 2006
13 juin 2006 à 12:38
le bug d'affichage est plutot a voir (laisser le probleme de nommage a coté pas tres necessaire pour mon probleme)
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
13 juin 2006 à 13:17
explique ce que ca fait chez toi que je puisse te dire si j'ai la meme
chose, sinon on est pas pres de t'aider.....................

d'autre part le probleme de nomage et important pour t'aider à corriger les différents problèmes que tu rencontre avec ton appli

WORA
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
14 juin 2006 à 10:51
A l'avenir ne melange pas voir meme jamais les objet graphic awt et swing les methode paint ne sont pas les meme exemple


en awt tu dessine dans paint(Graphics g)

en swing tu dessine dans paintComponent(Graphics g)

WORA
0
Rejoignez-nous