2012-04-05 2 views
-1

3つのラベル(Icon、Destination、lblDate)でレンダラーを作成しました。コードで新しいレンダラー(GUIで作成)のラベルを使用する方法(LWUIT v1.5)

は、私は唯一のレンダラ

setText(r.toString()); 

の宛先ラベルを変更することができましたが、どのように他を使用するには、このコードではStateMachine.java

cmp.setModel(new DefaultListModel(payments)); 
     cmp.setRenderer(new DefaultListCellRenderer(false) { 
     public Component getCellRendererComponent(Component list, Object model, Object value, int index, boolean isSelected) { 
       if(value instanceof Payment) { 
        Payment r = (Payment)value; 
       super.getCellRendererComponent(list, model, r.getPhoneNumber(), index, isSelected);      
       setText(r.toString()); 
       return this; 
       } 
       return super.getCellRendererComponent(list, model, value, index, isSelected); 
     }  
    }); 

にListModelのイベントにリストでそれを使用しました例えばlblDateのラベル?それらの値を設定するには?

答えて

0

レンダラーにGUIビルダーを使用していない場合は、Codename One Blogでその使用方法に関する詳細なビデオを見ることができます。 DefaultListCellRendererをラベルとして使用しているため、文字列とイメージのみが含まれるため、より精巧なベースを使用してListCellRendererインターフェイスを実装するか、Hashtableデータモデルで標準のGUIビルダーサポートを使用する必要があります。

+0

私はコードからリストを埋めたい除いビデオコードネーム一つのブログのようにリソースエディタを使用して行います。リソースエディタで作成したlistrendererをコード内に使用してサンプルを表示してください。または、DefaultListCellRendererクラスをオーバーライドし、この場合はリソースエディタを使用しないでください。 – AzizD

+0

setRendererを呼び出すと、そのGUIビルダーを使用していないことを意味します。リストを入力するのは、あなたのように簡単です。 GUIビルダーのリストレンダラーがレンダリングできないHashtableの代わりにPaymentオブジェクトを使用したのはあなただけでした。ですから、あなたのデータにハッシュテーブルを使用する必要があります(setRendererを使わないでください)。また、レンダラーを適切に実装するには、LWUITDemoのスクロールデモを参照してください。 –

+0

支払いはオブジェクトですが、支払は支払オブジェクトのベクトルです。 – AzizD

-1

私はShai Almogの答えに出てきました。ありがとう。 答えは、GUIのレンダラーのように構造化されたVector of Hashtableを使用することです。

GUI:

enter image description here

サンプルコード:

Vector PaymentsHashVec = new Vector() ; 
    for(int iter = 0 ; iter < getPayments().size() ; iter++) { 
     Hashtable hsh = new Hashtable(); 
     Payment p = (Payment)getPayments().elementAt(iter); 
     hsh.put("phn", p.getPhoneNumber()) ; 
     hsh.put("ant",p.getOriginalAmount()+"/ " + p.getAmount()) ; 
     hsh.put("btm",p.getDateSubmitted()) ; 
     PaymentsHashVec.addElement(hsh);         
    } 
cmp.setModel(new DefaultListModel(PaymentsHashVec)); 
関連する問題