2017-02-20 15 views
0

私はそれに関連付けられたテキストコントロールとGridLayoutを持っています。作成すると、特定の幅のテキストフィールドが作成されます。テキストフィールドにテキストを入力して保存すると、モデルが更新されます。再度特定のビューを閉じてもう一度開くと、テキストフィールドは以前に入力したテキストの幅で展開されます。これを制限し、テキストボックスに特定の幅を与えて、それ以上展開しないようにする方法。swtのテキストフィールドのサイズを制限する方法は?

答えて

2

GridDatawidthHintフィールドに制御幅を指定します。

簡単に言うと、これは次のようになります。

Text text = new Text(....); 

GridData data = new GridData(SWT.BEGINNING, SWT.CENTER, false, false); 

data.widthHint = 100; // Some width 

text.setLayoutData(data); 

あなたは文字の幅を指定する

data.widthHint = convertWidthInCharsToPixels(10); // Some number of characters 

を使用することができますDialogから派生したクラスでこれをやっている場合。

使用できるダイアログの外:

GC gc = new GC(text); 

gc.setFont(text.getFont()); 

FontMetrics fontMetrics = gc.getFontMetrics(); 

data.widthHint = fontMetrics.getAverageCharWidth() * chars; 

gc.dispose(); 
+0

どのように私はconvertWidthInCharsToPixels(10)の同じ機能を実現することができ、派生ダイアログクラスなし –

+1

が答えに文字幅カルクを行うためのコードを追加しました –

関連する問題