probleme d'implementation Scrollbar ou scrollpane

Résolu
Signaler
Messages postés
12
Date d'inscription
samedi 13 septembre 2003
Statut
Membre
Dernière intervention
11 février 2011
-
Messages postés
12
Date d'inscription
samedi 13 septembre 2003
Statut
Membre
Dernière intervention
11 février 2011
-
Bonjour,

j'ai beaucoup de difficulté a implementer un scrollbar ou scrollpane, dans mon application il y a une

guillotinePanel

= guillotineFrame.getContentPane();

guillotinePanel.setLayout(
new BoxLayout(
guillotinePanel, BoxLayout.
X_AXIS));

puis plus loin ...

panelCourant.add(imageCarteLable);  //  * x

guillotinePanel.add(panelCourant);

Le probleme c'est le taille des x imageCarteLable dépasse la capicité de l'ecran et que je n'arrive pas a correctement creé un scrollbar ou scrollpane

merci d'avance pour votre aide

8 réponses

Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
Salut,

ha bon ????? c'est pas plutot 'interface' qui est reservé et non 'Interface' ....

bref tiens un petit code d'exemple apres c'est a toi de l'adapter pour le mettre dans ton application

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

public class Test extends JFrame {
    private static final long serialVersionUID = 1802199483736051124L;

    public static void main(String[] args) {
        new Test().setVisible(true);
    }

    public Test() {
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(800, 600);
        setLocationRelativeTo(null);
        JPanel contentPane = (JPanel) getContentPane();
        JPanel currentPane = new JPanel();
        currentPane.setLayout(new BoxLayout(currentPane, BoxLayout.X_AXIS));
        ImageIcon imageCarte = new ImageIcon("fond1.png");
        final JLabel imageCarteLable = new JLabel(imageCarte);
        // juste pour mettre un truc
        imageCarteLable.setName(imageCarte.getDescription());

        imageCarteLable.addMouseListener(new MouseAdapter() {
            private boolean over = false;
            public void mouseClicked(MouseEvent e) {
                System.out.println("Carte selectionner: " + imageCarteLable.getName());
                if (over) {
                    imageCarteLable.setEnabled(true);
                    over = false;
                }
                else {
                    imageCarteLable.setEnabled(false);
                    over = true;
                }
            }
        });
        currentPane.add(new JScrollPane(imageCarteLable));
        contentPane.add(currentPane);
    }
}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
Salut,

une solution serait de passer par un JLabel exemple :

JLabel imageCarteLabel
= new JLabel(new ImageIcon("image.png"));
panelCourant.add(new JScrollPane(imageCarteLabel));

après je ne sais pas trop ce que cela donne avec un BoxLayout

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
12
Date d'inscription
samedi 13 septembre 2003
Statut
Membre
Dernière intervention
11 février 2011

En faite c'est déjà le cas il faut s'imaginer une suite de carte jouer, les une à coté des autres...

le probléme c'est que je dois en aligner 12, et que celà est rendu impossible vue la taille de ces images(pour garder une certaine visibilié je ne peux pas les reduire)
Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
Salut,

donne un peu plus d'info et de codes histoire de comprendre ce qui ne va pas

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
12
Date d'inscription
samedi 13 septembre 2003
Statut
Membre
Dernière intervention
11 février 2011

D'accord c'est vrai que cela est un peu vague en tout cas merci d'avance :




public








class

Interface


implements

MouseListener {



private

Container

guillotinePanel
;



private

Vector<JPanel>

CarteFiledattenteIconPanel
;



public

Interface(JFrame guillotineFrame) {


guillotinePanel
= guillotineFrame.getContentPane();


guillotinePanel
.setLayout(


new

BoxLayout(

guillotinePanel
,BoxLayout.



X_AXIS

));

creeCarteFiledattente();

creeTrophee();

creeCarteAction();

}



private





void

creeCarteFiledattente() {

Iterator itFiledattente = C_Guillotine.getFiledattente().iterator();


CarteFiledattenteIconPanel
=


new

Vector<JPanel>();



while

(itFiledattente.hasNext()) {itFiledattente.next();


CarteFiledattenteIconPanel
.add(


new

JPanel());}

Iterator itPanel =


CarteFiledattenteIconPanel
.iterator();itFiledattente = C_Guillotine.getFiledattente().iterator();



while

(itFiledattente.hasNext()) {CarteNoble carteFiledattente = (CarteNoble) itFiledattente.next();

JPanel panelCourant = (JPanel) itPanel.next();

panelCourant

.setLayout(



new

BoxLayout(panelCourant, BoxLayout.


X_AXIS

));

ImageIcon imageCarte = carteFiledattente.getIcon(ClassLoader

. getSystemResource (carteFiledattente.getURL()));



final

JLabel imageCarteLable =


new

JLabel(imageCarte,SwingConstants.



CENTER

);

imageCarteLable.setName(carteFiledattente.getNom());

imageCarteLable.addMouseListener(



new

MouseAdapter() {



private





boolean




over
=


false

;



public





void

mouseClicked(MouseEvent e) {System.



out

.println(

"Carte selectionner: "

+ imageCarteLable.getName());








if

(

over
) {imageCarteLable.setEnabled(


true

);

over
=


false

;}



else

{imageCarteLable.setEnabled(


false

);

over
=


true

;}}

});

panelCourant.add(imageCarteLable);


guillotinePanel
.add(panelCourant);

}

}


 
Messages postés
358
Date d'inscription
jeudi 24 octobre 2002
Statut
Membre
Dernière intervention
13 avril 2020

bonjour, le mot "Interface" est un mot réservé en java. donc commences par changer le nom de ta classe.
Messages postés
358
Date d'inscription
jeudi 24 octobre 2002
Statut
Membre
Dernière intervention
13 avril 2020

tu as raison twinuts. j'ai sortie une anerie ce matin. c'est bien "interface". j'ai regardé seulement regardé le titre de la page de la javadoc.
Messages postés
12
Date d'inscription
samedi 13 septembre 2003
Statut
Membre
Dernière intervention
11 février 2011

Ok merci à tous.