Bonjour a tous ( voire bonsoir vu l heure ! )

J ai un truc qui me chiffonne , je suis sur qu il y a une explication logique mais je suis pas trop sur alors je fais appel a vous . Voila j ai le bout de code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import javax.swing.JFrame;

public class Payroll extends javax.swing.JFrame {

  public Payroll() {
  super ("Defaut");
  setSize(400, 300);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  setVisible(true);
  }
  
  public Payroll(String nom) {
  this();
  setTitle(nom);
  
  }


  public static void main(String[] arguments) {
    
  //Payroll pf = new Payroll();   Quand je decommentarise ça et vire le bloc if en dessous  , ça passe bien
    if (arguments.length > 0) {
        String argu = arguments[0];
        Payroll pf = new Payroll(argu);
        } else {
        Payroll pf = new Payroll();
        }
    
    for (int i = 10; i < 400; i++) {
    pf.setSize(400 - (i/2), 300 - (i/2));
    }
  }
  
}
Le truc c est que ça ne compile pas :
le compilateur trouve une erreur sur le pf.setSize = cannot find symbol

Par contre quand je vire mon if/else et fais mon new Payroll sans le conditionner ça passe bien .

Alors the question is : Pourquoi ??

Le compilateur voit il 2 objets pf dans mon code et décide que quand j y fais appel il y a confusion ? Je suppose qu il ne faut jamais conditionner l appel a un constructeur ??