JScrollPane avec Layout null
adrien1904
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
pour un projet d'Algo je dois réaliser une interface en java.
Je souhaiterai afficher une liste de "carte" (des JPanel colorés) et pouvoir scroller dans cette liste lorsque le nombre de carte fait que les suivantes ne sont pas visibles :

(ici on voit que la dernière carte est coupée et il y peut en avoir d'autres en dessous).
J'ai donc découvert qu'il faut utiliser un JScrollPane mais apparemment cela ne marche pas avec un Layout(null) or c'est ce que nous utilisons en cours...
Voici mon code :
et la methode qui affiche les cartes :
et la méthode main si besoin :
Est-ce que quelqu'un aurait une idée pour résoudre mon problème ?
Merci beaucoup pour votre aide.
Adrien
pour un projet d'Algo je dois réaliser une interface en java.
Je souhaiterai afficher une liste de "carte" (des JPanel colorés) et pouvoir scroller dans cette liste lorsque le nombre de carte fait que les suivantes ne sont pas visibles :

(ici on voit que la dernière carte est coupée et il y peut en avoir d'autres en dessous).
J'ai donc découvert qu'il faut utiliser un JScrollPane mais apparemment cela ne marche pas avec un Layout(null) or c'est ce que nous utilisons en cours...
Voici mon code :
import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; public class FenetrePrincipale extends JFrame implements ActionListener, MouseListener{ LinkedList<Carte> cartesFidelite; //Liste des cartes JPanel conteneurCarte; JPanel monConteneurMain; JScrollPane scrollPane; public FenetrePrincipale(LinkedList<Carte> c){ cartesFidelite=c; //List of cards //Window setTitle("Gestionnaire de cartes"); setBounds(0, 0, 1195, 722); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setResizable(false); //CONTAINER Main containerMain = new JPanel(); containerMain.setLayout(null); containerMain.setBackground(Color.white); //CONTAINER Liste de cartes conteneurCarte = new JPanel(); conteneurCarte.setLayout(null); conteneurCarte.setBackground(new Color(242,242,242)); conteneurCarte.setBorder(BorderFactory.createLineBorder(new Color(199,199,199))); scrollPane = new JScrollPane(conteneurCarte); scrollPane.setBounds(34, 90, 377,550); containerMain.add(scrollPane); //Affichage de la fenetre this.add(monConteneurMain); this.setVisible(true); //Affichage des cartes refreshListCard(); }
et la methode qui affiche les cartes :
public void refreshListCard (){ conteneurCarte.removeAll(); int i = 0; for(Carte e : cartesFidelite){ e.setLocation(15,(15+i*(172+15))); conteneurCarte.add(e); e.addMouseListener(this); i++; } conteneurCarte.updateUI(); }
et la méthode main si besoin :
public static void main(String[] args){ LinkedList<Carte> ListeCarte = new LinkedList<Carte>(); Carte cartesDeFidelite1= new Carte("Nom","Prenom","Nom Magasin",100,123,Color.black); Carte cartesDeFidelite2= new Carte("DUPONT","Jean","Auchan",1034,123,new Color(255,103,103)); Carte cartesDeFidelite3= new Carte("DURANT","Adrien","Decathlon",500,123,new Color(103,144,255)); ListeCarte.add(cartesDeFidelite3); ListeCarte.add(cartesDeFidelite2); ListeCarte.add(cartesDeFidelite1); FenetrePrincipale gestionnaireCarte = new FenetrePrincipale(ListeCarte); }
Est-ce que quelqu'un aurait une idée pour résoudre mon problème ?
Merci beaucoup pour votre aide.
Adrien
Configuration: Macintosh / Firefox 86.0
A voir également:
- JScrollPane avec Layout null
- Microsoft keyboard layout creator - Télécharger - Bureautique
- Logiciel layout gratuit - Télécharger - Outils professionnels
- Comment ouvrir un fichier null ? - Guide
- Layout instagram gratuit - Télécharger - Retouche d'image
- Cannot read property of null traduction ✓ - Forum Javascript
1 réponse
Bonjour,
"J'ai donc découvert qu'il faut utiliser un JScrollPane mais apparemment cela ne marche pas avec un Layout(null) or c'est ce que nous utilisons en cours"
On ne peut pas réduire un langage informatique aux seules fonctionnalités autorisées en cours.
Il va donc falloir faire un choix : avoir un programme qui ne fait pas ce que tu veux ou aller au delà du cours.
Remarque : Swing n'est plus maintenu depuis la sortie de Java 8 en 2014, la technologie recommandée pour faire des applications de bureau est désormais JavaFX
"J'ai donc découvert qu'il faut utiliser un JScrollPane mais apparemment cela ne marche pas avec un Layout(null) or c'est ce que nous utilisons en cours"
On ne peut pas réduire un langage informatique aux seules fonctionnalités autorisées en cours.
Il va donc falloir faire un choix : avoir un programme qui ne fait pas ce que tu veux ou aller au delà du cours.
Remarque : Swing n'est plus maintenu depuis la sortie de Java 8 en 2014, la technologie recommandée pour faire des applications de bureau est désormais JavaFX