Changer la bordure d'une JFrame
Fermé
Cotton
-
18 déc. 2015 à 22:11
greg6614 Messages postés 592 Date d'inscription vendredi 7 août 2009 Statut Membre Dernière intervention 3 juin 2017 - 16 janv. 2016 à 23:16
greg6614 Messages postés 592 Date d'inscription vendredi 7 août 2009 Statut Membre Dernière intervention 3 juin 2017 - 16 janv. 2016 à 23:16
A voir également:
- Changer la bordure d'une JFrame
- Changer dns - Guide
- Bordure de page word - Guide
- Changer clavier qwerty en azerty - Guide
- Changer carte graphique - Guide
- Changer extension fichier - Guide
2 réponses
Bonsoir,
Merci pour votre réponse.
J'ai une autre question :
J'ai un panel vPanelRight :
JPanel vPanelRight = new JPanel()
{
Image bg = new ImageIcon("bouton test.png").getImage();
@Override
public void paintComponent(Graphics g)
{
g.drawImage(bg, 0, 0, null);
}
};
Sous cette forme, j'arrive à appliquer une image en fond du Panel. Très bien, c'est ce que je veux.
Néanmoins, j'ajoute un BorderLayout à ce Panel et, à l'intérieur, des bouttons :
vPanelRight.setLayout(new BorderLayout());
vPanelCenter.add(vPanelRight, BorderLayout.EAST);
vPanelRight.add(aButtonNorth, BorderLayout.NORTH);
vPanelRight.add(aButtonEast, BorderLayout.EAST);
vPanelRight.add(aButtonSouth, BorderLayout.SOUTH);
vPanelRight.add(aButtonWest, BorderLayout.WEST);
Le problème qui se présente est que, lorsque je clique sur l'un des boutons (ou même que je passe ma souris dans le Panel), l'image en background du Panel se retrouve perturbée. De manière aléatoire, elle va se dupliquer, prendre un nouvelle place dans le Panel (en fond toujours) et se superposer.
Pour résumer, ma technique ne marche que si je ne touche pas les boutons. Or cela n'est pas possible. Je veux que l'image reste statique.
Je vous remercie,
Cordialement,
Cotton
Merci pour votre réponse.
J'ai une autre question :
J'ai un panel vPanelRight :
JPanel vPanelRight = new JPanel()
{
Image bg = new ImageIcon("bouton test.png").getImage();
@Override
public void paintComponent(Graphics g)
{
g.drawImage(bg, 0, 0, null);
}
};
Sous cette forme, j'arrive à appliquer une image en fond du Panel. Très bien, c'est ce que je veux.
Néanmoins, j'ajoute un BorderLayout à ce Panel et, à l'intérieur, des bouttons :
vPanelRight.setLayout(new BorderLayout());
vPanelCenter.add(vPanelRight, BorderLayout.EAST);
vPanelRight.add(aButtonNorth, BorderLayout.NORTH);
vPanelRight.add(aButtonEast, BorderLayout.EAST);
vPanelRight.add(aButtonSouth, BorderLayout.SOUTH);
vPanelRight.add(aButtonWest, BorderLayout.WEST);
Le problème qui se présente est que, lorsque je clique sur l'un des boutons (ou même que je passe ma souris dans le Panel), l'image en background du Panel se retrouve perturbée. De manière aléatoire, elle va se dupliquer, prendre un nouvelle place dans le Panel (en fond toujours) et se superposer.
Pour résumer, ma technique ne marche que si je ne touche pas les boutons. Or cela n'est pas possible. Je veux que l'image reste statique.
Je vous remercie,
Cordialement,
Cotton
greg6614
Messages postés
592
Date d'inscription
vendredi 7 août 2009
Statut
Membre
Dernière intervention
3 juin 2017
107
19 déc. 2015 à 12:35
19 déc. 2015 à 12:35
Hello, en fonction de l'ordre d'ajout de test éléments sur ton JPanel ils se superposeront (si ton layout le permet et qu'il est bien configuré pour chacun de tes éléments). Autrement dit tu peux ajouter ton imageà ton Panel qui fait la taille exact de celui ci en tout premier et ensuite tu ajoutes tes autres éléments etc...
Voilà un exemple de fenêtre restylisé.
Mes boutons pour fermer et réduire la fenêtre sont bien visible car ajouter au panel après le background ;)
Voilà un exemple de fenêtre restylisé.
Mes boutons pour fermer et réduire la fenêtre sont bien visible car ajouter au panel après le background ;)

20 déc. 2015 à 03:13
20 déc. 2015 à 12:39
Mais où dois-je les ajouter. Pour un bouton, j'ai deux listener, un pour l'action et l'autre pour changer l'image du bouton lors d'un appuie :
JButton aButtonNorth = new JButton();
setConfigButton(aButtonNorth, "NORTH", "bouton1.png", 70, 70);
public static void setConfigButton(final JButton pButton, final String pText, final String pImage, final int pSizeX, final int pSizeY)
{
pButton.setText(pText);
pButton.setIcon(new ImageIcon(pImage));
pButton.setPreferredSize(new Dimension(pSizeX, pSizeY));
pButton.setVerticalTextPosition(SwingConstants.CENTER);
pButton.setHorizontalTextPosition(SwingConstants.CENTER);
pButton.setBorderPainted(false);
pButton.setContentAreaFilled(false);
pButton.setFocusPainted(false);
pButton.setOpaque(false);
}
public static void setMouseListener(final JButton pButton, final String pStringUnPressed, final String pStringPressed)
{
pButton.addMouseListener(new MouseAdapter()
{
@Override
public void mousePressed(MouseEvent e)
{
pButton.setIcon(new ImageIcon(pStringPressed));
}
@Override
public void mouseReleased(MouseEvent e)
{
pButton.setIcon(new ImageIcon(pStringUnPressed));
}
});
}
public void actionPerformed(final ActionEvent pEvent)
{
String vSource = pEvent.getActionCommand();
Command vCommand = aParser.getCommand(vSource);
if(vCommand != null)
{
aEngine.interpretCommand(vCommand);
}
else
{
processCommand();
}
}
Sachant que j'ai deux listener, on peut dire, où dois-je loger les deux méthodes ?
Merci
16 janv. 2016 à 23:16