我有一个带有两个RadioButtonField对象的屏幕。默认情况下,第一个RadioButtonField将显示一个矩形以显示其所选内容,如果将所选内容更改为另一个RadioButtonField或页面上的其他按钮和文本框,矩形将移动。我想知道的是...有没有办法隐藏显示选择/边框的边框?BlackBerry - RadioButtonField,选择时隐藏边框
1
A
回答
1
,如果你在4.6及更高版本,尝试setBorder()没有边缘:
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);
}
}
如果在4.5和更低,尽量覆盖drawFocus(),让它空:
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);
}
}
1
您需要覆盖对象的drawFocus方法,方法是对其进行扩展。
+0
已经尝试过,并没有调用super.drawFocus,但它并没有为我删除边框。 – 2010-03-14 17:18:57
+0
啊,我想我明白了为什么,从Max的回答中可以看出,你的解决方案并不适合我。我试图编译4.7扩展drawFocus只是4.6和以下的解决方案。我可能应该在我的帖子中提到我的JDE版本! – 2010-03-15 21:26:22
谢谢!这有助于我发现边界也可以只针对特定状态进行更改,例如:rbField.setBorder(Field.VISUAL_STATE_FOCUS,invisibleBorder); – 2010-03-15 21:47:59