0

LWUIT1.4を使用しています

1)私のフォームには、BoxLayout(Y軸)に基づくコンテナがあり、このコンテナに2つのラベルが追加されています。コンテナに配置されるタイトル付きの境界線を作成して、2つのラベルを囲みます。Borderを作成することは知っていますが、LWUIT1.4でBorderにタイトルを設定する方法がわかりません。では、LWUIT 1.4でタイトルをボーダーに設定するにはどうすればよいですか?

2)私のフォームには、デフォルトテーブルモデルクラスに基づくテーブルがあり、そのgetValueAtメソッドはレコードストアの列挙で実装されています。テーブルの行は、行のインデックスに従って色付けされます。たとえば、行の場合などです。インデックスが奇数の場合、その背景色は白である必要があり、行インデックスがペアの場合、その背景色は灰色である必要があります。それを達成する方法は?

3)TableLayout.Constraintメソッドが機能しないのはなぜですか?テーブルの2つの列のサイズを同じにしたいのですが、これは各列のテーブルの合計幅の50%ですが、アプリケーションを実行すると、データがない場合、最初の列のサイズが2番目の列と同じになりません。十分な長さ !では、列を同じサイズにする方法は?

どうもありがとうございます

4

2 に答える 2

1

1)トランクにはタイトル付きの境界線がありますが、1.4で追加されたと思います。Container paintBorderメソッドをオーバーライドすることで、このようなものを描画できます(境界線が正しく表示されるようにするには、十分なコンポーネントのパディングが必要です。これはSVNバージョンのコードであり、ほとんど変更を加えずに機能するはずです(cをこれに変更するだけです)。

Font f=c.getStyle().getFont();
int titleW=f.stringWidth(borderTitle);
int topPad=c.getStyle().getPadding(Component.TOP);
int topY=y+(topPad-thickness)/2;
if (c.isRTL()) {
    g.fillRect(x+width-TITLE_MARGIN, topY, TITLE_MARGIN , thickness); //top (segment before the title)
    g.fillRect(x, topY, width-(TITLE_MARGIN +titleW+TITLE_SPACE*2), thickness); //top (segment after the title)
    g.drawString(borderTitle, x+width-(TITLE_MARGIN +titleW+TITLE_SPACE), y+(topPad-f.getHeight())/2);
} else {
    g.fillRect(x, topY, TITLE_MARGIN , thickness); //top (segment before the title)
    g.fillRect(x+TITLE_MARGIN +titleW+TITLE_SPACE*2, topY, width-(TITLE_MARGIN +titleW+TITLE_SPACE*2), thickness); //top (segment after the title)
    g.drawString(borderTitle, x+TITLE_MARGIN+TITLE_SPACE, y+(topPad-f.getHeight())/2);
}

g.fillRect(x, y+height-thickness, width, thickness); //bottom
g.fillRect(x, topY, thickness, height); //left
g.fillRect(x+width-thickness, topY, thickness, height); //right

2)テーブルを導出し、メソッドをオーバーライドします。

protected Component createCell(Object value, int row, int column, boolean editable)

super.createCell()を呼び出し、戻り値のUIIDを「OddRow」、「EvenRow」に適切に設定します。リソースエディタまたはテーマを好きなようにスタイル設定します。

3)私はそのような問題を認識していません。これが現在のSVNで発生する場合は、プロジェクトの課題追跡システムで課題を提出する必要があります。

于 2011-05-25T03:48:37.637 に答える
1

ブログサイトから最新のリソースエディターをダウンロードし、コンポーネントTableCellの背景と境界線の「選択された」バージョンを定義しましたが、最後の列のテーブルセルをクリックすると、実行時に常に余分な長方形が表示されます。tableName.repaint()コンポーネントfを呼び出そうとしましたocusGained()フォーカスリスナーに登録したのでメソッドを実装しましたが、長方形が消えません。選択した行番号を表示するダイアログを作成しました。3番目のソフトボタンをクリックするとダイアログが表示され、長方形が消えました。おそらく、テーブルセルからフォーカスが失われます!! そして、発砲するたびに、以前と同じ行番号を取得しました。したがって、行番号エラーはありません。では、ダイアログを表示して長方形を非表示にするのと同じ効果を得るには、どのコードを作成する必要がありますか、またはエディターでどのプロパティを編集する必要がありますか?

于 2011-05-26T12:01:34.363 に答える