2016-07-11 6 views
1

TextFieldは、次のフィールドに移動した後に自動的に拡大します。これを解決するために、setPrefferredSize(Dimension d)コードを使用しましたが、最新のコードではこのメソッドは推奨されていません。したがって、TextFieldにsetSameHeight/Widthメソッドを適用します。setPreferredSize TextBoxの幅と高さのAligned呼び出しが機能しない

TextField loginId= new TextField("", "", 10, TextArea.ANY); 
loginId.setHeight(60); 
loginId.setWidth(320); 
TextField password= new TextField("", "", 10, TextArea.ANY); 
password.setHeight(60); 
password.setWidth(320); 
Component.setSameWidth(loginId,password); 
Component.setSameHeight(loginId,password); 

上記のコードは、それ以上のデータがある場合はtextFieldsの動的拡大には機能しません。

私のコードで何が間違っていますか?

ありがとうございます。

答えて

0

setPreferredSizeここでは問題があります。

両方のコンポーネントの幅と高さが同じで、両方のコンポーネントがそのコードに基づいて同期して成長するので、これは成長を制限する効果的な方法ではありません。

これについてコンポーネントを見ているという視点は間違っているので、レイアウトを見てください。例えば。テキストフィールドが画面のより小さな部分を占めるようにするには、そのような場合に非常に適したテーブルレイアウトを使用し、幅の制約を使用します。デベロッパーガイドsection on layoutsを参照してください。

+0

テーブルレイアウトでもコードが機能しない場合、データサイズが増えるとテキストサイズが大きくなります。このコードを見つけてください - >フォームhi =新しいフォーム( "Hi World"、新しいTableLayout(3,1)); TextField t1 =新しいTextField(); t1.setWidth(200); TextField t2 = new TextField(); TextField t3 = new TextField(); t2.setWidth(200); t3.setWidth(200); hi.addComponent(t1); hi.addComponent(t2); hi.addComponent(t3); Component.setSameWidth(t1、t2、t3); //hi.addComponent(新しいラベル(「ハイワールド」)); hi.show(); – user2243420

+0

FYI、TextFieldのsetSize(Dimension d)メソッドもこのダイナミックでは機能しません。テキスト付きのtextfiledsサイズを拡張しています。 – user2243420

+0

setWidth/Height(と明らかにsetSizeなど)は、あなた自身のレイアウトマネージャーを作成している場合にのみ意味があるので、完全に冗長になります。レイアウトの幅の制約については、サンプルのwidthPercentageを参照してください。https://www.codenameone.com/javadoc/com/codename1/ui/table/TableLayout.html –

関連する問題