Я написал пользовательское поле редактирования с рамкой, используя JDE4.2.1. Затем это поле добавляется в VerticalLayoutManager и создается следующим образом:
BorderEditField bef = new BorderEditField("Enter a value: ", null, 6,
BorderEditField.FIELD_RIGHT | BorderEditField.FILTER_NUMERIC);
Однако независимо от того, какой стиль яуказать (FIELD_HCENTER) Поле всегда выравнивается по левому краю.Есть ли что-то очевидное, что я мог бы здесь упустить?Пробовал на разных версиях JDE с одинаковым результатом ...
public class BorderEditField extends BasicEditField {
public BorderEditField(String label, String initialValue, int maxNumChars, long style)
{
super(label, initialValue, maxNumChars, style);
}
private int iRectX = getFont().getAdvance(getLabel());
private int iRectWidth = (getMaxSize() * getFont().getAdvance("X")) + 16;
public int getPreferredWidth() {
return Display.getWidth();
}
public void layout(int width, int height) {
super.layout(width, getPreferredHeight());
setExtent(width, getPreferredHeight());
}
public void paint(Graphics g) {
super.paint(g);
if (isFocus()) {
g.setColor(Color.RED);
g.setGlobalAlpha(220);
g.drawRect(iRectX, 0, iRectWidth, getPreferredHeight());
} else {
g.setColor(Color.BLACK);
g.setBackgroundColor(Color.DARKBLUE);
g.setGlobalAlpha(150);
g.drawRect(iRectX, 0, iRectWidth, getPreferredHeight());
}
}
}
Спасибо.