Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur : JFrame cannot be resolved to a type

2 avril 2021 à 14:14:51

Bonjour,

je suis débutant en Java et commence le cours des fenêtres (dans mon cas, assez simple : elle n'affiche rien). Et je tombe dès le départ sur une erreur  :

Voici mon code :

package com.ari.jeux;

import javax.swing.JFrame;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		
		JFrame fen1 = new Frame();
		fen1.setVisible(true);
		
		

	}

}

Voici une capture d'écran également, au cas où... je sais pas :


Pouvez vous m'éclairer !!

Merci beaucoup           :)

  • Partager sur Facebook
  • Partager sur Twitter
2 avril 2021 à 18:10:35

si tu passes ta souris sur l'erreur en ligne 11, il ne te propose pas une solution ?  idem pour la ligne 3 de l'import 

sinon une Frame et JFrame c'est la même chose ? :-°

  • Partager sur Facebook
  • Partager sur Twitter
2 avril 2021 à 19:08:38

Du coup pour passer la souris au dessus de la ligne 3, je sais pas trop sur quoi cliquer, il y a une proposition interessante, qui est :

import 'JFrame ' (java.swing) (l.11) mais il ne se passe rien quand je clique (j'imagine que c'est parce que j'ai normalement déjà importé cette bibliothèque) . Et je te met les autres propositions :

Et pour la ligne 3, Eclipse me propose ces solutions : 

Et elles ne m'ont pas l'air très interessantes...

Sinon, pour Frame et JFrame je ne sais pas... Sur tous les petits tutos pour débutants, ils utilisent JFrame. J'ai essayé de remplacer les JFrame par Frame mais ça ne change pas grand chose. :(

-
Edité par emmanuelopshtein 2 avril 2021 à 19:14:47

  • Partager sur Facebook
  • Partager sur Twitter
3 avril 2021 à 22:59:10

Bonsoir, ce que voulait dire umfred (je me trompe peut-être), c'est que tu essayes de créer une instance de Frame, qui n'existe pas, contrairement à JFrame.

Pour créer ta fenêtre, il faut donc faire :

JFrame window = new JFrame("title");


puis la rendre visible. De plus, il faut que la classe étende JFrame (extends JFrame) si je ne dis pas de bêtise.

Voilà deux liens intéressants : ici & ici ;) 

L'auteur du site Koor a une chaîne YouTube où il explique plutôt bien les bases de Swing si ça t'intéresse. 

-
Edité par Niiack 3 avril 2021 à 23:02:13

  • Partager sur Facebook
  • Partager sur Twitter
« L'ordre mon cul, la liberté m'habite ! »
4 avril 2021 à 19:11:47

Vraiment deso pour ceux pour qui c'est évident mais en tant que débutant je n'y comprends rien : j'ai une erreur dans l'instanciation de l'objet. Voici mon code : 

package com.ari.jeux;

import javax.swing.JFrame;



public class Main extends JFrame{

	public static void main(String[] args) {
	    JFrame window = new JFrame("Titre");    
	    window.setVisible(true);
		

	}

}

Et voici l'erreur : 

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
	The constructor JFrame(String) is undefined
	The method setVisible(boolean) is undefined for the type JFrame

	at Jeux/com.ari.jeux.Main.main(Main.java:10)

Mais j'ai aussi une question : comment ma classe pourrait hériter de la SuperClass JFrame si je ne lui donne pas le chemin ? Ne faudrait-t-il pas que je crée un autre fichier en parallèle ?

J'ai beau chercher sur le net, mais rien n'y fait :'(



-
Edité par emmanuelopshtein 4 avril 2021 à 19:14:28

  • Partager sur Facebook
  • Partager sur Twitter
4 avril 2021 à 21:06:50

Bonjour,

Tu t'es trompé sur l'import.

C'est "java.swing.JFrame" (sans x après java)

  • Partager sur Facebook
  • Partager sur Twitter
4 avril 2021 à 21:34:13

Non, j'ai exactement la même erreur que tout à l'heure (puisque c'est l'importation qui ne va pas je pense). Merci d'avoir essayé :honte:

-
Edité par emmanuelopshtein 4 avril 2021 à 23:49:06

  • Partager sur Facebook
  • Partager sur Twitter
5 avril 2021 à 8:49:32

 D'abord, une remarque. "extends JFrame" ne sert à rien ; tu peux l'enlever.

Ensuite, as-tu créé une classe JFrame dans ton package ? Si oui, ça expliquerait tes erreurs.

Deux solutions :

- renomme ta classe JFrame

ou

- dans Main, utilise le nom complet de la classe.

javax.swing.JFrame window = new javax.swing.JFrame();



  • Partager sur Facebook
  • Partager sur Twitter
5 avril 2021 à 14:06:16

Ahhhhhh oui !! Merci beaucoup de ton aide brubru777  :D !! Ça marche : en faisant ce que tu m'as dit de faire, j'ai passer la souris sur le code que tu m'a donner pour instancier ma fenêtre et cela m'a proposer de : "requires java.desktop".

Et du coup, dernière question logique : Comment aurai-je pu le faire manuellement (ce requires )?

Merci beaucoup de ton aide

-
Edité par emmanuelopshtein 5 avril 2021 à 14:08:04

  • Partager sur Facebook
  • Partager sur Twitter
10 avril 2021 à 11:03:16

Y-a-t-il quelque chose que vous ne comprenez pas ? Dans ce cas là dites le moi :-°
  • Partager sur Facebook
  • Partager sur Twitter
10 avril 2021 à 22:11:17

Salut,

au moment de la compilation, tu recevras une erreur:

import javax.swing.*;
            ^
  (package javax.swing is declared in module java.desktop, but module com.openclassrooms does not read it)



  • Partager sur Facebook
  • Partager sur Twitter
11 avril 2021 à 17:54:26

Attends, j'ai pas très bien compris... Tu peux réexpliquer ? Merci ^^
  • Partager sur Facebook
  • Partager sur Twitter
11 avril 2021 à 18:02:18

Qu'est-ce-que tu n'as pas compris car là je peux pas devenir ? 

  • Partager sur Facebook
  • Partager sur Twitter
11 avril 2021 à 19:26:01

Tout simplement, je ne reçois aucune erreur...
  • Partager sur Facebook
  • Partager sur Twitter
11 avril 2021 à 19:52:32

emmanuelopshtein a écrit:

Ça marche : en faisant ce que tu m'as dit de faire, j'ai passer la souris sur le code que tu m'a donner pour instancier ma fenêtre et cela m'a proposer de : "requires java.desktop".

Pourtant l'IDE te proposer de corriger.
Si tu compiles en ligne de commande ou via en IDE tu auras une erreur de compilation. Et si tu as cette erreur il suffit de créer le fichier module-info.java et d'ajouter les lignes nécessaires.

-
Edité par rybla 11 avril 2021 à 19:53:13

  • Partager sur Facebook
  • Partager sur Twitter
12 avril 2021 à 19:20:29

Ahhh, Merci beaucoup rybla :magicien:  . Sujet Résolu
  • Partager sur Facebook
  • Partager sur Twitter