Blackberry JAVA DEVELOPMENT ENVIRONMENT - - DEVELOPMENT GUIDE Manual page 26

Version: 4.7.0
Hide thumbs Also See for JAVA DEVELOPMENT ENVIRONMENT - - DEVELOPMENT GUIDE:
Table of Contents

Advertisement

Development Guide
private String _label;
private int _shape;
private Font _font;
private int _labelHeight;
private int _labelWidth;
}
4.
Implement constructors to define a label, shape, and style of the custom button.
public CustomButtonField(String label) {
this(label, RECTANGLE, 0);
}
public CustomButtonField(String label, int shape) {
this(label, shape, 0);
}
public CustomButtonField(String label, long style) {
this(label, RECTANGLE, style);
}
public CustomButtonField(String label, int shape, long style) {
super(style);
_label = label;
_shape = shape;
_font = getFont();
_labelHeight = _font.getHeight();
_labelWidth = _font.getAdvance(_label);
}
5.
Implement layout() to specify the arrangement of field data. Perform the most complex calculations in layout()
instead of in paint(). The manager of the field invokes layout() to determine how the field arranges its contents in the
available space. In the following code sample, we invoke Math.min() to return the smaller of the specified width and
height and the preferred width and height of the field. We then invoke Field.setExtent(int,int) to set the
required dimensions for the field.
protected void layout(int width, int height) {
_font = getFont();
_labelHeight = _font.getHeight();
_labelWidth = _font.getAdvance(_label);
width = Math.min( width, getPreferredWidth() );
height = Math.min( height, getPreferredHeight() );
setExtent( width, height );
}
6.
Implement getPreferredWidth(), using the relative dimensions of the field label to make sure that the label does
not exceed the dimensions of the component. In the following code sample, we use a switch block to determine the preferred
width based on the shape of the custom field. For each type of shape, we use an IF statement to compare dimensions and
determine the preferred width for the custom field.
24
UI components

Advertisement

Table of Contents
loading

This manual is also suitable for:

Java development environment

Table of Contents