2016-05-13 9 views
0

PropertySheetControlsFXライブラリ)の1つのプロパティにチェックボックスとテキストフィールドを追加したいとします。それは可能かどうか?だから、いくつかのGUI要素をPropertyEditorに追加するだけです。たとえば、チェックボックス+ボタン、チェックボックス+ラベル、チェックボックス+テキストフィールドなどです。PropertyEditorをオーバーライドすることは可能ですか?PropertySheet Editorの複数のシーンノードJavaFX

enter image description here enter image description here

+0

はい、可能です。 –

答えて

0

を参照してください。 HBoxにチェックボックス+コンボボックスを追加しようとしました。下のコード、それは動作します。

public static final <T> PropertyEditor<?> createCheckBoxLinkEditor(PropertySheet.Item property, 
     final Collection<T> choices) { 
    ComboBox<T> comboBox = new ComboBox<T>(); 
    comboBox.setCellFactory((ListView<T> p) -> new ListCell<T>() { 
     @Override 
     protected void updateItem(T item, boolean empty) { 
      super.updateItem(item, empty); 
      if (item == null || empty) { 
      } else if (item instanceof Class) { 
       setText(((Class) item).getSimpleName()); 
      } else { 
       setText(item.toString()); 
      } 
     } 
    }); 
    HBox hbox = new HBox(5); 
    CheckBox checkBox = new CheckBox(); 
    hbox.getChildren().add(checkBox); 
    hbox.getChildren().add(comboBox); 
    //hbox.getA 
    //comboBox.setConverter(value); 
    return new AbstractPropertyEditor<T, HBox>(property, hbox) { 

     { 
      comboBox.setItems(FXCollections.observableArrayList(choices)); 
      //new AutoCompleteComboBoxListener(comboBox); 
      new SelectKeyComboBoxListener(comboBox); 
     } 

     @Override 
     protected ObservableValue<T> getObservableValue() { 
      return comboBox.getSelectionModel().selectedItemProperty(); 
     } 

     @Override 
     public void setValue(T value) { 
      comboBox.getSelectionModel().select(value); 
     } 
    }; 
} 
0

あなたはまた、単一の親内部の倍数ノードをラップすることができます。[ここ][1]自分で解決しよう

関連する問題