J'ai créé un bouton personnalisé. Pour cela, j'ai surchargé la méthode paintComponenet. Comment puis-je définir le texte du bouton sur un tel bouton? J'ai essayé de le faire en utilisant la méthode drawString. Mais quelles valeurs x, y dois-je donner? (g.drawString ("texte du bouton", x, y)). S'il vous plaît jusqu'à moi si quelqu'un a géré cela.Java Swing JButton
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
DefaultButtonModel bmodel = (DefaultButtonModel) super.getModel();
Image im = (new ImageIcon("image")).getImage();
System.out.println("im is "+im.getSource());
System.out.println("widthis" + im.getWidth(this));
int imageX = (getWidth() - im.getWidth(this)) /2;
int imageY = (getHeight() - im.getHeight(this))/2;
if(!super.isEnabled()) {
System.out.println("in disabled");
g.drawImage(disabled, imageX, imageY, this);
g.drawString(super.getText(), super.getX(),(int) (super.getY()/(1.9)));
}
else {
if(bmodel.isPressed()) {
System.out.println("in pressed");
g.drawImage(down, imageX, imageY, this);
} else if(bmodel.isRollover()) {
System.out.println("in roll overed");
g.drawImage(highlight, imageX, imageY, this);
} else if(bmodel.isEnabled()) {
System.out.println("in enabled");
g.drawImage(normal, imageX, imageY, this);
} else {
System.out.println("in else");
g.drawImage(normal, imageX, imageY, this);
}
g.drawString(super.getText(), super.getX(),(int) (super.getY()/(2.5)));
}
}
Pourquoi prenez-vous autant de problèmes? Pourquoi n'utilisez-vous pas un IDE (NetBeans, Eclipse, etc.)? –
Prasoon? Qu'est-ce qu'un IDE a à faire avec les contrôles Swing personnalisés? – Joey
@JOhannes: Rien, mais il serait plus facile pour lui de concevoir une interface graphique avec l'aide d'un IDE, mais il a besoin de connaître les bases. –