salut ,
est-ce qu'il y a d'autre type de bouton en java , comme bouton Windows Vista par exemple pour je le charge dans ma fenêtre.
salut ,
est-ce qu'il y a d'autre type de bouton en java , comme bouton Windows Vista par exemple pour je le charge dans ma fenêtre.
Il faudrait que tu précises ce que tu entends par "type de bouton".
Sinon, regarde du côté des look&feels. C'est eux qui gèrent l'aspect des boutons.
Dernière solution : tu peux transformer un panel pour en faire ton propre bouton
oui je veux faire ma propre bouton, mais comment faire exactement ?? il y a un moyen
Tiens, voilà ce que j'utilise, perso, pour créer mes boutons :
Cette Classe permet d'ajouter un ActionListener sur un JPanel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 public class PanelAction extends JPanel implements MouseListener { public PanelAction() { super(); setLayout(new BorderLayout()); setBackground(Color.WHITE); } public void mouseClicked(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mousePressed(MouseEvent e) { ActionEvent event = new ActionEvent(this,ActionEvent.ACTION_PERFORMED,"ActionPerformed"); fireActionPerformed(event); } /** * Adds an <code>ActionListener</code> to the button. * @param l the <code>ActionListener</code> to be added */ public void addActionListener(ActionListener l) { listenerList.add(ActionListener.class, l); addMouseListener(this); } /** * Removes an <code>ActionListener</code> from the button. * @param l the listener to be removed */ public void removeActionListener(ActionListener l) { listenerList.remove(ActionListener.class, l); } /** * Notifies all listeners that have registered interest for * notification on this event type. The event instance * is lazily created using the <code>event</code> * parameter. * * @param event the <code>ActionEvent</code> object */ protected void fireActionPerformed(ActionEvent event) { for(ActionListener l : listenerList.getListeners(ActionListener.class)) { l.actionPerformed(event); } } }
et celle-ci te permettra de le contrôler comme un vrai bouton :
Et voilà ! ^^
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125 public class Bouton extends PanelAction implements MouseListener { ImageIcon icone; ImageIcon iconePassage; ImageIcon iconeClic; String texte; JLabel iconeAffichee = null; JLabel texteAffiche = null; boolean rollover = false; boolean clic = false; public Bouton() { this(null,null); } public Bouton(String s) { this(s,null); } public Bouton(ImageIcon i) { this(null,i); } public Bouton(String texte, ImageIcon i) { super(); init(texte,i); } final void init(String texte, ImageIcon i) { if(texte != null) { setText(texte);} if(i != null) { setIcon(i);} if(texte == null && i == null) {setText("");} } public void setText(String texte) { this.texte = texte; texteAffiche = new JLabel(texte); add(texteAffiche); revalidate(); repaint(); } public void setIcon(String s) { icone = new ImageIcon(s); setIcon(icone); } public final void setIcon(ImageIcon i) { icone = i; if(iconeAffichee!=null) {remove(iconeAffichee);} iconeAffichee = new JLabel(icone); add(iconeAffichee, BorderLayout.CENTER); revalidate(); repaint(); } public void setRolloverIcon(String s) { iconePassage = new ImageIcon(s); rollover = true; } public void setRolloverIcon(ImageIcon i) { iconePassage = i; rollover = true; } public void setSelectedIcon(String s) { iconeClic = new ImageIcon(s); clic = true; } public void setSelectedIcon(ImageIcon i) { iconeClic = i; clic = true; } public void setRolloverEnabled(boolean b) { rollover = b; } public void setSelectionEnabled(boolean b) { clic = b; } @Override public void mousePressed(MouseEvent e) { if(clic) { affiche(iconeClic); } ActionEvent event = new ActionEvent(this,ActionEvent.ACTION_PERFORMED,"ActionPerformed"); fireActionPerformed(event); } @Override public void mouseReleased(MouseEvent e) { if(clic) { affiche(icone); } } @Override public void mouseEntered(MouseEvent e) { if(rollover) { affiche(iconePassage); } } @Override public void mouseExited(MouseEvent e) { if(rollover) { affiche(icone); } } void affiche(ImageIcon i) { remove(iconeAffichee); iconeAffichee = new JLabel(i); add(iconeAffichee); revalidate(); repaint(); } }
Pour le reste, tu peux regarder du coté des BorderFactory, ou alors créer les impressions de relief directement avec photoshop (et équivalents)
Pourquoi ne pas utiliser ce constructeur ?
Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
Ceylon : Installation - Concepts de base - Typage - Appels et arguments
ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
Une solution vous convient ? N'oubliez pas le tag
Signature par pitipoisson
Parce que ce constructeur rend ton rendu dépendant du L&F. Donc soit tu appliques un autre L&F pour ton bouton, soit, tu utilises tes propres images pour qu'il ressemble exactement à ce que tu veux
Bonjour,
vous pouvez aussi utiliser un JButton tout simplement, en y mettant une image personnalisée. voici un exemple de code:Au final, il reste l'image png.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 btn_USB = new JButton( new CAdherentActionUSB()); btn_USB.setPreferredSize( tailleBouton ); // Dimension prédéfinie pour tous mes boutons btn_USB.setIcon( new ImageIcon( getClass().getResource( "/LISTE_USB Adherents.png" ))); btn_USB.setRolloverIcon( new ImageIcon( getClass().getResource( "/LISTE_USB Adherents roll.png" ))); btn_USB.setPressedIcon( new ImageIcon( getClass().getResource( "/LISTE_USB Adherents press.png" ))); btn_USB.setToolTipText( "<html>Importe des enfants depuis une liste externe...<br/> ou crée une liste d'exportation des enfants sélectionnés.</html>" ); btn_USB.setCursor( curseurBouton ); // Curseur prédéfini pour tous les boutons btn_USB.setFocusPainted( false ); // Pour éviter l'encadré lors du clic btn_USB.setBorderPainted( false ); btn_USB.setOpaque( false ); // Pour gérer la transparence des images png btn_USB.setContentAreaFilled( false ); // Pour ne pas avoir de couleur de fond
@bientôt...
Partager