Est-il possible de supprimer une bordure dans un JTextField
?
txt = new JTextField();
txt.setBorder(null); // <-- this has no effect.
Je voudrais vraiment qu'il ressemble à un JLabel
- mais j'ai toujours besoin que ce soit un JTextField
parce que je veux que les gens puissent le mettre en évidence.
D'après une réponse à votre précédente question vous savez que certains PL & F peuvent encombrer la frontière.
La solution évidente est donc de remplacer la méthode setBorder
que le PL&F appelle et de rejeter la modification.
JTextField text = new JTextField() {
@Override public void setBorder(Border border) {
// No!
}
};
JTextField textField = new JTextField();
textField.setBorder(javax.swing.BorderFactory.createEmptyBorder());
http://Java.Sun.com/javase/6/docs/api/javax/swing/BorderFactory.html
Lorsque vous définissez la bordure sur `` null '', vous dites en fait l'apparence d'utiliser le style de bordure native (du système d'exploitation) s'il en existe un.
Essayez de le définir sur BorderFactory.createEmptyBorder () au lieu de null. Parfois, cela "fait l'affaire", car le définir sur null a en fait une signification différente.
Si cela ne fonctionne pas, il est possible que l'apparence que vous utilisez soit prioritaire. Utilisez-vous la valeur par défaut ou quelque chose de personnalisé?
Non, vous ne pouvez pas supprimer la bordure. Surtout sur l'affichage des composants AWT. Ils utilisent l'ensemble de widgets natifs (sont dessinés en dehors de Java).
Essayez de faire la ligne qui est similaire à votre arrière-plan ... par exemple, si votre arrière-plan est blanc, vous devez:
setBorder(BorderFactory.createLineBorder(Color.white));
Réglez ensuite l'arrière-plan sur blanc:
setBackground(Color.white);
txt.setBorder(new LineBorder(Color.BLACK,0));
pourrait fonctionner.