2016-06-18 71 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編輯ComboBox JavaFX中:工作在NetBeans中,JAR文件不起作用

,當我從NetBeans中運行該代碼的工作就好了。但是,從JAR文件(從CMD或文件夾視圖)運行它時,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(布爾值)

設置屬性的值編輯。 屬性說明:指定組合框是否允許用戶輸入。如果可編輯爲true,則ComboBox具有用戶可以鍵入的文本輸入區域。這個輸入可以通過value屬性獲得。 請注意,當可編輯屬性更改時,值屬性將與其他任何相關狀態一起重置。

+0

不知何故,我在這裏發佈了錯誤的代碼,我應該從鏈接發佈示例16-4。將Java更新到JDK 1.8.0_91後,所有內容均按預期工作。 – Jery33

相關問題