1 pièce(s) jointe(s)
Problème lors de l'affichage d'un rectangle fin.
Bonjour, j'ai créé une fenêtre affichant 3 boutons (classe personnalisé étendu du JButton).
Je dessine un rectangle fin à la droite de chacun d'entre eux via un "Graphics.fillRect()" :
Code:
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
| import javax.swing.*;
import java.awt.*;
import java.util.ArrayList;
public class FlatButton extends JButton
{
private Color hidleColor = new Color(0x4773B9);
private Color hoverColor = new Color(0x416BAA);
private Color pressColor = new Color(0x35549B);
boolean isPressed = false;
private ArrayList<FlatButton> otherButtons = new ArrayList<FlatButton>();
public FlatButton(String text)
{
super(text);
super.setBorderPainted(false);
super.setFocusPainted(false);
super.setContentAreaFilled(false);
}
@Override
protected void paintComponent(Graphics g)
{
if (getModel().isPressed())
{
isPressed = true;
}
if (isPressed)
{
g.setColor(pressColor);
}
else if (getModel().isRollover())
{
g.setColor(hoverColor);
}
else
{
g.setColor(hidleColor);
}
g.fillRect(0, 0, getWidth(), getHeight());
// ICI :
g.setColor(new Color(0xFFFFFF));
g.fillRect(0,0,1,getHeight());
// AU DESSUS ^^
super.paintComponent(g);
}
@Override
public void setContentAreaFilled(boolean b) {
}
public Color getHoverBackgroundColor() {
return hoverColor;
}
public void setHoverBackgroundColor(Color hoverBackgroundColor) {
this.hoverColor = hoverBackgroundColor;
}
public Color getPressedBackgroundColor() {
return pressColor;
}
public void setPressedBackgroundColor(Color pressedBackgroundColor) {
this.pressColor = pressedBackgroundColor;
}
} |
Et je l'utilise ici :
Code:
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
| FlatButton b1 = new FlatButton("Mon parc");
FlatButton b2 = new FlatButton("Mes véhicules");
FlatButton b3 = new FlatButton("Mes clients");
b1.setFont(new Font("Montserrat",Font.ROMAN_BASELINE, 20));
//b1.setBackground(new Color(0x4773B9));
b1.setForeground(new Color(255,255,255));
b1.setPreferredSize(new Dimension(175,50));
b1.setHorizontalAlignment(SwingConstants.CENTER);
b1.setVerticalAlignment(SwingConstants.CENTER);
MenuLeft.add(b1);
b2.setFont(new Font("Montserrat",Font.ROMAN_BASELINE, 20));
//b2.setBackground(new Color(0x4773B9));
b2.setForeground(new Color(255,255,255));
b2.setPreferredSize(new Dimension(175,50));
b2.setHorizontalAlignment(SwingConstants.CENTER);
b2.setVerticalAlignment(SwingConstants.CENTER);
MenuLeft.add(b2);
b3.setFont(new Font("Montserrat",Font.ROMAN_BASELINE, 20));
b3.setForeground(new Color(255,255,255));
b3.setPreferredSize(new Dimension(175,50));
b3.setHorizontalAlignment(SwingConstants.CENTER);
b3.setVerticalAlignment(SwingConstants.CENTER);
MenuLeft.add(b3); |
Le problème c'est que j'obtient des traits de taille différentes :
Pièce jointe 477996
Auriez-vous une idée d'où cela peut venir ? Merci d'avance :roll: