Comprend pas la difference entre panneau et fenetre en SWING [Résolu/Fermé]

Signaler
Messages postés
51
Date d'inscription
samedi 24 mai 2014
Statut
Membre
Dernière intervention
15 avril 2016
-
Messages postés
51
Date d'inscription
samedi 24 mai 2014
Statut
Membre
Dernière intervention
15 avril 2016
-
Bonjour,
voici un code:

public class Fenetre extends JFrame{

private Panneau pan = new Panneau(); ====> Panneau: classe herité de JPanel.
private JButton bouton = new JButton("mon bouton");
private JPanel container = new JPanel();


Quelle est la difference graphiquement entre la fenetre et le panneau??

Merçi par avance.

8 réponses

Messages postés
16256
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
27 février 2021
2 799
Bonjour,

Graphiquement une JFrame va avoir un titre, des boutons pour réduire, agrandir ou fermer la fenêtre. C'est le cadre principal de n'importe quelle application graphique depuis plus de 20 ans.

Un JPanel est une zone dans la fenêtre, une division de son espace. Graphiquement il peut être visible (grace à une couleur de fond ou des bordures) dans ce cas tu verras un rectangle à l'intérieur de la fenêtre. Mais souvent un Panel est invisible, c'est un conteneur pour la mise en forme donc on se limitera à n'afficher que son contenu.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
48
Date d'inscription
lundi 2 juin 2014
Statut
Membre
Dernière intervention
18 septembre 2014
6
OK,
Il faut que tu fasse un mix de Layouts.
Il te faut un container principal avec un BorderLayout :
https://docs.oracle.com/javase/tutorial/uiswing/layout/border.html

En gros ton interface devra être gaulée comme ça :


Ça devrait fonctionner, ensuite tu peux t'amuser à redimensionner les boutons pour avoir exactement le même rendu que l'image d'exemple.

A+
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
48
Date d'inscription
lundi 2 juin 2014
Statut
Membre
Dernière intervention
18 septembre 2014
6
Bonjour,

Un JFrame est un composant qui s'affiche à l'écran (en gros, c'est un cadre VIDE dans lequel on peut mettre des choses). A part la couleur du fond ce composant ne peut pas afficher grand chose.
Il faut donc l'alimenter avec des composants graphiques, dont le JPanel.

Un JPanel est un composant graphique dans lequel tu peux organiser l'agencement de tes composants (TextField, JLabel...).
MAIS tu ne peux pas afficher un JPanel si tu ne le met pas dans un JFrame.


Pour faire une vue de l'esprit on pourrait comparer ça à un paperboard.
Le JFrame c'est le cadre sur lequel on accroche les feuilles, et le JPanel c'est une feuille.

En tout cas c'est comme ça que je vois les choses et ça marche bien :p

A+
Messages postés
51
Date d'inscription
samedi 24 mai 2014
Statut
Membre
Dernière intervention
15 avril 2016
1
merçi
Je comprends a présent, sinon j'ai une autre question a propos des layout manager, je trouve que c'est une grosse galere pour (re)dimensionner a sa guise, par exemple je veux faire une calculatrice voici la photo:



A ton avis, quel layout est le plus approprié, sachat que j'ai essayé mainte fois le gridLayout et impossible de disposer comme sur l'image??
Messages postés
51
Date d'inscription
samedi 24 mai 2014
Statut
Membre
Dernière intervention
15 avril 2016
1
La je dis chapeau Mr le Gaulois :) clair et précis.

Je passe au code maintenant et normalement ça devrait le faire.

merçi
@+
Messages postés
51
Date d'inscription
samedi 24 mai 2014
Statut
Membre
Dernière intervention
15 avril 2016
1
j'ai plusieurs problémes, le carré bleu reste en haut, le marron est en dessous du bleu et le vert a droite du bleu , tu as une idée de quoi qui beug??

et en marron et vert, c'est des GridBagLayout??
Messages postés
48
Date d'inscription
lundi 2 juin 2014
Statut
Membre
Dernière intervention
18 septembre 2014
6
Tu peux montrer une copie d'écran ?
Non c'est bien des GridLayout (les GridBagLayout c'est trop compliqué à utiliser en général...)
Messages postés
51
Date d'inscription
samedi 24 mai 2014
Statut
Membre
Dernière intervention
15 avril 2016
1
non c'est bon, ça marche trés bien c'est juste:
j'ai importé java.awt et il fallait java.awt.BorderLayout.

J'ai perdu des heures a cause de ça, je croyais que java.awt englobé tout mais en fait non.

Sinon, j'ai le dernier bloc qui ne rentre pas en une ligne et le jlabel un peu trop mince.