cs_bibe
Messages postés27Date d'inscriptionmardi 27 août 2002StatutMembreDernière intervention12 mars 2004
-
3 oct. 2002 à 16:27
cs_Dunkel
Messages postés7Date d'inscriptiondimanche 24 novembre 2002StatutMembreDernière intervention14 mars 2003
-
30 nov. 2002 à 14:34
Bonjour à tous.
Je met un icone en remplacement de l'icone java à l'aide de
"Toolkit tk = Toolkit.getDefaultToolkit();
Image img = tk.getImage(logo);
setIconImage(img);
"
Mon problème est que le "logo" que je voudrais mettre à la place est un petit peu plus grand que celui de la tasse à café de java.
Question: Peut on agrandir un peu la barre dans la quelle se place l'icone?
Merci d'avance.
bibe.
JHelp
Messages postés261Date d'inscriptionjeudi 5 septembre 2002StatutMembreDernière intervention 6 octobre 200511 12 oct. 2002 à 10:08
Je me suis renseigné, c'est malheureusement impossible, puisque le JFrame est génré par le système, et prend donc l'apparence que le système lui donne.
Pour contourner le problème, prend une JWindow à la place de ta JFrame, là pas de barre de titre,donc tu peux en ajouter un de la taille que tu veux, mais il faut le creer toi même.
Si tu es intéssé je peux te motrer comment faire.
JHelp
JHelp
Messages postés261Date d'inscriptionjeudi 5 septembre 2002StatutMembreDernière intervention 6 octobre 200511 30 nov. 2002 à 01:20
1)Tu as donc ta classe qui hérite de JWindow (javax.swing), appelons la MonApplication
public class MonApplication extends JWindow
2)Dans la construction, tu lui donnes un BorderLayout (java.awt).
getContentPane().setLayout(newBorderLayout());
3)En imaginant que tu veuilles placer ta barre de menu en haut.
BarreMenu barreMenu=new BarreMenu(this,icone,titre);
getContentPane().add(barreMenu,BorderLayout.NORTH);
4)avvant l'affichage, n'oublie pas pack.
5) Creer un ton composant (JComponent de javax.swing) BarreMenu
public class BarreMenu entends JComponent
{
private int l=-1,h=-1,x=-1,y=-1;
private JWindow fenetre;
private Icon icone;
private ImageIcon imageIconifier=new ImageIcon("nom fichier");
private ImageIcon imageAgrandir=new ImageIcon("nom fichier");
private ImageIcon imageRestaurer=new ImageIcon("nom fichier");
private ImageIcon imageFermer=new ImageIcon("nom fichier");
private String titre;
private JButton bouton;
public BarreMenu(JWindow fenetre,Icon icone,String titre);
{
this.fenetre=fenetre;
this.icone=icone;
this.titre=titre;
setLayout(new FlowLayout());
add(newJLabel(icone));
add(new JLabel(titre));
JButton iconifier=new JButton(imageIconifier);
iconifier.addActionListener
(
new ActionListener()
{
public void actionperformed(ActionEvent ae)
{
fenetre.setVisible(false);
}
}
);
add(iconifier);
bouton=new JButton(imageAgrandir);
iconifier.addActionListener
(
new ActionListener()
{
public void actionperformed(ActionEvent ae)
{
if(l>=0)
{
fenetre.setSize(l,h);
fenetre.setLocation(x,y);
x=y=l=h=-1;
bouton.setIcon(imagaeAgrandir);
}
else
{
l=fenetre.getWidth();
h=fenetre.getHeight();
x=fenetre.getX();
y=fenetre.getY();
fenetre.setSize(Toolkit.getDefaultToolkit().getScreenSize());
bouton.setIcon(imageRestaurer);
}
}
}
);
add(bouton);
JButton fermer=new JButton(imageFermer);
iconifier.addActionListener
(
new ActionListener()
{
public void actionperformed(ActionEvent ae)
{
fenetre.setVisible(false);
fenetre.dispose();
}
}
);
}
}
Maintenant avec le jdk 1.4.1, on peux garder une JFrame, et faire une vrai iconification (setState(JFrame.ICONIFIED))
et masquer la barre menu :
setUndecorated