Comprend pas la difference entre panneau et fenetre en SWING

Résolu/Fermé
Jadorelinfo Messages postés 51 Date d'inscription samedi 24 mai 2014 Statut Membre Dernière intervention 15 avril 2016 - Modifié par Jadorelinfo le 3/06/2014 à 16:23
Jadorelinfo Messages postés 51 Date d'inscription samedi 24 mai 2014 Statut Membre Dernière intervention 15 avril 2016 - 6 juin 2014 à 18:29
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

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
3 juin 2014 à 17:45
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
ProvencaleLeGaulois Messages postés 48 Date d'inscription lundi 2 juin 2014 Statut Membre Dernière intervention 18 septembre 2014 6
Modifié par ProvencaleLeGaulois le 6/06/2014 à 15:35
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
ProvencaleLeGaulois Messages postés 48 Date d'inscription lundi 2 juin 2014 Statut Membre Dernière intervention 18 septembre 2014 6
Modifié par ProvencaleLeGaulois le 6/06/2014 à 14:56
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+
0
Jadorelinfo Messages postés 51 Date d'inscription samedi 24 mai 2014 Statut Membre Dernière intervention 15 avril 2016 1
6 juin 2014 à 15:02
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??
0

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

Posez votre question
Jadorelinfo Messages postés 51 Date d'inscription samedi 24 mai 2014 Statut Membre Dernière intervention 15 avril 2016 1
6 juin 2014 à 15:39
La je dis chapeau Mr le Gaulois :) clair et précis.

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

merçi
@+
0
Jadorelinfo Messages postés 51 Date d'inscription samedi 24 mai 2014 Statut Membre Dernière intervention 15 avril 2016 1
6 juin 2014 à 16:34
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??
0
ProvencaleLeGaulois Messages postés 48 Date d'inscription lundi 2 juin 2014 Statut Membre Dernière intervention 18 septembre 2014 6
6 juin 2014 à 16:41
Tu peux montrer une copie d'écran ?
Non c'est bien des GridLayout (les GridBagLayout c'est trop compliqué à utiliser en général...)
0
Jadorelinfo Messages postés 51 Date d'inscription samedi 24 mai 2014 Statut Membre Dernière intervention 15 avril 2016 1
6 juin 2014 à 18:29
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.

0