J'ai un écran avec deux objets RadioButtonField. Par défaut, le premier RadioButtonField affiche un rectangle autour de lui pour montrer son sélectionné, et le rectangle se déplace si vous changez la sélection à l'autre RadioButtonField ou d'autres boutons et zones de texte sur la page. Ce que je voudrais savoir, c'est ... est-il possible de cacher cette bordure qui montre la sélection/bordure?BlackBerry - RadioButtonField, masquer la bordure sur la sélection
Répondre
si vous en 4.6 et plus, essayez de setBorder() sans arêtes:
alt text http://img139.imageshack.us/img139/672/rbnoborder.jpg
class Scr extends MainScreen {
EditField editField = new EditField("edit field", "text");
RadioButtonGroup rbGroup = new RadioButtonGroup();
RadioButtonField rbField = new RadioButtonField("First field");
RadioButtonField rbField2 = new RadioButtonField("Second field");
ButtonField buttonField = new ButtonField("button");
Border invisibleBorder =
BorderFactory.createSimpleBorder(new XYEdges(0,0,0,0));
public Scr() {
add(editField);
rbGroup.add(rbField);
rbGroup.add(rbField2);
add(rbField);
add(rbField2);
add(buttonField);
editField.setBorder(invisibleBorder);
rbField.setBorder(invisibleBorder);
rbField2.setBorder(invisibleBorder);
buttonField.setBorder(invisibleBorder);
}
}
Si vous en 4,5 et inférieur, essayez de remplacer drawFocus() et le laisser vide:
alt text http://img214.imageshack.us/img214/672/rbnoborder.jpg
class Scr extends MainScreen {
EditField editField = new EditField("edit field", "text") {
protected void drawFocus(Graphics graphics, boolean on) {
}
};
RadioButtonGroup rbGroup = new RadioButtonGroup();
RadioButtonField rbField = new RadioButtonField("First field") {
protected void drawFocus(Graphics graphics, boolean on) {
}
};
RadioButtonField rbField2 = new RadioButtonField("Second field") {
protected void drawFocus(Graphics graphics, boolean on) {
}
};
ButtonField buttonField = new ButtonField("button") {
protected void drawFocus(Graphics graphics, boolean on) {
}
};
public Scr() {
add(editField);
rbGroup.add(rbField);
rbGroup.add(rbField2);
add(rbField);
add(rbField2);
add(buttonField);
}
}
Vous devrez remplacer la méthode drawFocus de l'objet en l'étendant.
Déjà essayé, et n'a pas appelé super.drawFocus mais il n'a pas supprimé la bordure pour moi. –
Ahh, je pense que je vois pourquoi, à partir de la réponse de Max que votre solution ne fonctionne pas pour moi. J'essaie de compiler contre 4.7 extension drawFocus est seulement la solution pour 4.6 et ci-dessous. J'aurais probablement dû mentionner ma version JDE dans mon post! –
Merci! Cela m'a aidé à découvrir que la bordure peut également être modifiée uniquement pour un état spécifique, par exemple: rbField.setBorder (Field.VISUAL_STATE_FOCUS, invisibleBorder); –