2016-06-18 10 views
0
import javafx.application.Application; 
import javafx.geometry.Insets; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.control.*; 
import javafx.scene.layout.GridPane; 
import javafx.stage.Stage; 

public class ComboBoxSample extends Application { 
    public static void main(String[] args) { 
     launch(args); 
    } 

    final Button button = new Button ("Send"); 
    final Label notification = new Label(); 
    final TextField subject = new TextField(""); 
    final TextArea text = new TextArea (""); 

    String address = " "; 

    @Override public void start(Stage stage) { 
     stage.setTitle("ComboBoxSample"); 
     Scene scene = new Scene(new Group(), 500, 270); 

     final ComboBox emailComboBox = new ComboBox(); 
     emailComboBox.getItems().addAll(
      "[email protected]", 
      "[email protected]", 
      "[email protected]", 
      "[email protected]", 
      "[email protected]" 
     ); 

     final ComboBox priorityComboBox = new ComboBox(); 
     priorityComboBox.getItems().addAll(
      "Highest", 
      "High", 
      "Normal", 
      "Low", 
      "Lowest" 
     ); 

     priorityComboBox.setValue("Normal"); 

     GridPane grid = new GridPane(); 
     grid.setVgap(4); 
     grid.setHgap(10); 
     grid.setPadding(new Insets(5, 5, 5, 5)); 
     grid.add(new Label("To: "), 0, 0); 
     grid.add(emailComboBox, 1, 0); 
     grid.add(new Label("Priority: "), 2, 0); 
     grid.add(priorityComboBox, 3, 0); 
     grid.add(new Label("Subject: "), 0, 1); 
     grid.add(subject, 1, 1, 3, 1);    
     grid.add(text, 0, 2, 4, 1); 
     grid.add(button, 0, 3); 
     grid.add (notification, 1, 3, 3, 1); 

     Group root = (Group)scene.getRoot(); 
     root.getChildren().add(grid); 
     stage.setScene(scene); 
     stage.show(); 
    }  
} 

出典:http://docs.oracle.com/javase/8/javafx/user-interface-tutorial/combo-box.htm#BABJCCIBのJavaFXで編集可能なコンボボックスは:JARファイルでは動作しません、NetBeansの中で作品

私は、NetBeansからそれを実行すると、このコードは正常に動作します。ただし、JARファイル(CMDまたはフォルダビューの両方)からJARファイルを実行すると、ComboBoxに問題があります。プログラムは、ComboBoxに入力したすべてのものを無視します。編集前にボックスが空の場合は、「受信者を選択していません!」と表示されます。 リストの受信者が選択されて編集された場合、プログラムは編集を無視して受信者に送信します。

私は自分のコードで同じ問題を抱えていました。そのため、私はOracleによって書かれたこのコードをテストしました。私はNetBeansの設定に何か間違っていなければならないと思っていますが、それについて何をすべきかわかりません。

+0

システムJavaのバージョンとNetBeansの使用するバージョンが異なる可能性はありますか? 'System.getProperty(" java.version ")'を印刷して、別の結果が得られるかどうか確認してください。 – Itai

+0

NetBeansバージョン:1.8.0_45 システムバージョン:1.8.0_60 – Jery33

答えて

0

このようにコードを変更します(持っていると見here

ComboBox emailComboBox = new ComboBox(); 
emailComboBox.setEditable(true); //add this line 
emailComboBox.getItems().addAll(
    "[email protected]", 
    "[email protected]", 
    "[email protected]", 
    "[email protected]", 
    "[email protected]" 
); 

ComboBox priorityComboBox = new ComboBox(); 
priorityComboBox.setEditable(true); //add this line 
priorityComboBox.getItems().addAll(
    "Highest", 
    "High", 
    "Normal", 
    "Low", 
    "Lowest" 
); 

無効javafx.scene.control.ComboBoxBase.setEditable(ブール値)

は、プロパティの値を設定します。編集可能。 プロパティ説明ComboBoxでユーザー入力を許可するかどうかを指定します。 editableがtrueの場合、ComboBoxにはユーザーが入力できるテキスト入力領域があります。この入力はvalueプロパティを介して使用できます。 editableプロパティが変更されると、valueプロパティは他の関連する状態とともにリセットされます。

+0

どういうわけかここで間違ったコードを投稿しました。リンクから例16-4を掲載してください。 JavaをJDK 1.8.0_91にアップデートすると、すべてが正常に動作します。 – Jery33

関連する問題