La méthode pack() dimensionne automatiquement la fenêtre (JFrame) : le calcul est effectué en tenant compte des règles d'agencement et dimensionnement des Layout Manager, et des contraintes et préférences d'agencement et dimensionnement des composants de la fenêtre.
@Override est ce qu'on appelle une annotation, dans notre cas, de méthode. Elle indique au compilateur qu'il doit vérifier que la méthode déclarée doit absolument redéfinir une méthode, de signature identique, d'une super classe. Elle permet donc juste de s'assurer qu'on ne s'est pas trompé dans la déclaration de la méthode.
Par exemple si on a une classe A :
Les classes suivantes ne compilent pas (je fais comme si je m'étais trompé en les écrivant), alors que sans l'annotation elles compileraient :Code:
1
2
3
4
5 public class A { public long machinTruc(long x) { return x*2; } }
Code:
1
2
3
4
5
6
7
8 public class B extends A { @Override public long machintruc(long x) { // j'ai fait une erreur dans la casse return super.machinTruc(x)+1; } }
Code:
1
2
3
4
5
6
7
8 public class C extends A { @Override public long machinTrc(long x) { // j'ai "oublié" le u return super.machinTruc(x)*2; } }
Code:
1
2
3
4
5
6
7
8 public class D { // j'ai "oublié" le extends A @Override public long machinTruc(long x) { return x*3; } }
Code:
1
2
3
4
5
6
7
8 public class E extends A { @Override public long machinTruc(Long x) { // je me suis gourré dans le type de l'argument return super.machinTruc(x)-1; } }
etc.Code:
1
2
3
4
5
6
7
8 public class F extends A { @Override public long machinTruc(long x, int y) { // cette méthode à deux paramètres n'existe pas dans la hiérarchie de classes héritées return super.machinTruc(x)+y; } }