こんにちは、私はブラックベリーを初めて使用します。テキストをスクロールするテキストフィールドが必要です。つまり、水平方向の優先幅よりも大きく、テキスト描画領域の外側 (左側など) にラベルを表示することもできます。私を助けてください。
2548 次
1 に答える
4
これは、非スクロールとスクロールの HorizontalFieldManager を組み合わせることで実現できます。
このコードを試してください:
class Scr extends MainScreen {
public Scr() {
HorizontalFieldManager fieldHolder = new HorizontalFieldManager(
NO_HORIZONTAL_SCROLL | NO_HORIZONTAL_SCROLLBAR);
fieldHolder.add(new LabelField("some label: "));
HorizontalFieldManager editHolder = new HorizontalFieldManager(
HORIZONTAL_SCROLL | HORIZONTAL_SCROLLBAR);
editHolder.add(new TextField(TextField.NO_NEWLINE));
fieldHolder.add(editHolder);
add(fieldHolder);
}
}
デフォルトのテキスト コードの設定:
class Scr extends MainScreen {
public Scr() {
HorizontalFieldManager fieldHolder = new HorizontalFieldManager(
NO_HORIZONTAL_SCROLL | NO_HORIZONTAL_SCROLLBAR);
fieldHolder.add(new LabelField("some label: "));
HorizontalFieldManager editHolder = new HorizontalFieldManager(
HORIZONTAL_SCROLL | HORIZONTAL_SCROLLBAR);
TextField textField = new TextField(TextField.NO_NEWLINE);
editHolder.add(textField);
fieldHolder.add(editHolder);
add(fieldHolder);
// set some text then
String text = "Lorem ipsum dolor sit amet, consectetuer"+
" adipiscing elit, sed diam nonummy nibh euismod tincidunt"+
" ut laoreet dolore magna aliquam erat volutpat.";
textField.setText(text);
}
}
基本的に 4.6/4.7 で動作するもの:
class Scr extends MainScreen {
public Scr() {
String text = "Lorem ipsum dolor sit amet, consectetuer"+
" adipiscing elit, sed diam nonummy nibh euismod tincidunt"+
" ut laoreet dolore magna aliquam erat volutpat.";
HorizontalFieldManager fieldHolder = new HorizontalFieldManager(
NO_HORIZONTAL_SCROLL | NO_HORIZONTAL_SCROLLBAR);
fieldHolder.add(new LabelField("some label: "));
HorizontalFieldManager editHolder = new HorizontalFieldManager(
HORIZONTAL_SCROLL | HORIZONTAL_SCROLLBAR);
TextField textField = new TextField("",text,1024,TextField.NO_NEWLINE);
editHolder.add(textField);
fieldHolder.add(editHolder);
add(fieldHolder);
}
}
マネージャーの枠
Border border = BorderFactory.createSimpleBorder(new XYEdges(4,4,4,4));
fieldHolder.setBorder(border);
固定サイズ マネージャー
class SizedHFM extends HorizontalFieldManager {
int mWidth = 0;
public SizedHFM(int width) {
super(NO_HORIZONTAL_SCROLL | NO_HORIZONTAL_SCROLLBAR);
mWidth = width;
}
protected void sublayout(int maxWidth, int maxHeight) {
super.sublayout(mWidth, maxHeight);
setExtent(mWidth, getPreferredHeight());
}
}
使用例:
class Scr extends MainScreen {
public Scr() {
String text = "Lorem ipsum dolor sit amet, consectetuer"
+ " adipiscing elit, sed diam nonummy nibh euismod tincidunt"
+ " ut laoreet dolore magna aliquam erat volutpat.";
SizedHFM fieldHolder = new SizedHFM(200);
Border border = BorderFactory
.createSimpleBorder(new XYEdges(4, 4, 4, 4));
fieldHolder.setBorder(border);
fieldHolder.add(new LabelField("some label: "));
HorizontalFieldManager editHolder = new HorizontalFieldManager(
HORIZONTAL_SCROLL | HORIZONTAL_SCROLLBAR);
TextField textField = new TextField("", text, 1024,
TextField.NO_NEWLINE);
editHolder.add(textField);
fieldHolder.add(editHolder);
add(fieldHolder);
}
}
于 2010-03-30T07:23:39.193 に答える