0

setReadOnly(true) を実行すると、Vaadin ComboBox が非表示になるのはなぜですか?

スクリーンショット

正常 通常の ComboBox - 可視

見えないsetReadOnly(true) の ComboBox - 非表示

ソースコード

import java.util.List;   
import com.vaadin.ui.ComboBox;

public class PropertyComboBox extends ComboBox
{
    public PropertyComboBox(List<String> properties)
    {
        super();
        for(String property: properties) {this.addItem(property);}
        this.setImmediate(true);
        this.setMultiSelect(false);

        this.setNewItemsAllowed(false);
        this.setInputPrompt("Property");
        this.setReadOnly(true);
    }
}
4

3 に答える 3

1

ユーザーが何も書き込めないコンボ ボックスを作成しようとしている場合は、NativeSelectコンポーネントを確認してください。

API ドキュメントから:

これは単純なドロップダウン選択であり、たとえば、複数選択、新しい項目、遅延読み込み、およびその他の高度な機能はサポートされていません。場合によっては、ComboBox の付加機能をすべて使用せずに「ネイティブ」な選択を選択する方が適切な場合があります。

これらの機能が必要ない場合は、NativeSelect の使用を検討する必要があります。

于 2012-05-04T12:01:01.860 に答える
1

コンポーネントを読み取り専用に設定すると、すべてのコンポーネントが「非表示」になります。私もその理由を見つけることができず、疑問に思っていました。

私の提案 (少しハック): コンポーネントを無効にし、CSS 内で無効になっている外観を変更します。

于 2012-05-03T15:28:26.677 に答える
1

Nexus は正しく、readOnly に設定するとコンポーネントが非表示になります。実際、読み取り専用に設定して「v-readonly」CSS クラス名を追加すると、CSS が残りを行います。

よろしく。

于 2012-05-04T00:51:47.017 に答える