2014-10-09 63 views
0

我想創建一個簡單的用戶界面使用FXML應用程序的應用程序,最終將文本文件發送到另一個應用程序在那裏使用。我在此選項卡窗格中的第一個選項卡的目標是允許用戶輸入自己的組名,並將它們添加到他們輸入的所有組名稱列表中。我希望讓用戶將組名稱輸入到一個textField中,然後他們單擊一個添加按鈕,這會將組名稱移動到一個textArea然後進入一個新行。我想我已經得到了行動處理程序,但我無法測試它,因爲當我運行該程序時,什麼也沒有顯示出來!任何幫助,將不勝感激。JavaFX標籤窗格不顯示

的Java代碼:

package pipeline.ui; 

import javafx.application.Application; 
import javafx.fxml.FXMLLoader; 
import javafx.scene.Parent; 
import javafx.scene.Scene; 
import javafx.stage.Stage; 

/** 
* 
* @author Pat 
*/ 
public class PipelineUI extends Application { 

    @Override 
    public void start(Stage stage) throws Exception { 
     Parent root = FXMLLoader.load(getClass().getResource("PipelineUI.fxml")); 

     Scene scene = new Scene(root, 1000, 1000); 

     stage.setTitle("Pipeline Welcome"); 
     stage.setScene(scene); 
     stage.show(); 
    } 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     launch(args); 
    } 

} 

控制器代碼:

package pipeline.ui; 

import java.net.URL; 
import java.util.ResourceBundle; 
import javafx.event.ActionEvent; 
import javafx.fxml.FXML; 
import javafx.fxml.Initializable; 
import javafx.scene.control.Button; 
import javafx.scene.control.Label; 
import javafx.scene.control.Tab; 
import javafx.scene.control.TextArea; 
import javafx.scene.control.TextField; 

/** 
* 
* @author Pat 
*/ 
public class PipelineUIController implements Initializable { 

    private Label label; 
    @FXML 
    private Tab groupsTab; 
    @FXML 
    private Button addGroup; 
    @FXML 
    private Button removeGroup; 
    @FXML 
    private Button proceedButton1; 
    @FXML 
    public TextArea groupsList; 
    @FXML 
    private TextField groupName; 
    private static final String newline = "\n"; 

    public void handleButtonAction(ActionEvent event) { 
     if (groupName.getText() != "") 
     { 
      String name = groupName.getText(); 
      groupsList.appendText(name); 
      groupsList.appendText(newline); 
     } 
    } 

    @Override 
    public void initialize(URL url, ResourceBundle rb) { 
     // TODO 
    }  

} 

的FXML代碼:

<?xml version="1.0" encoding="UTF-8"?> 

<?import javafx.scene.text.*?> 
<?import java.lang.*?> 
<?import java.util.*?> 
<?import javafx.scene.*?> 
<?import javafx.scene.control.*?> 
<?import javafx.scene.layout.*?> 

<TabPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity"  prefHeight="1000.0" prefWidth="1000.0" tabClosingPolicy="UNAVAILABLE"  xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8"  fx:controller="pipeline.ui.PipelineUIController"> 
    <tabs> 
    <Tab fx:id="groupsTab" text="Experimental Groups"> 
     <content> 
     <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0"> 
       <children> 
        <Button fx:id="addGroup" layoutX="253.0" layoutY="100.0"  mnemonicParsing="false" onMouseClicked="handleButtonAction" text="Add Group &gt;&gt;" /> 
        <Button fx:id="removeGroup" layoutX="242.0" layoutY="173.0"  mnemonicParsing="false" text="&lt;&lt; Remove Group" /> 
        <Button fx:id="proceedButton1" layoutX="534.0" layoutY="332.0"  mnemonicParsing="false" text="OK" /> 
        <TextArea fx:id="groupsList" layoutX="367.0" layoutY="86.0" prefHeight="200.0"  prefWidth="200.0" /> 
        <TextField fx:id="groupName" layoutX="77.0" layoutY="100.0" /> 
        <Text layoutX="77.0" layoutY="82.0" strokeType="OUTSIDE" strokeWidth="0.0"  text="Add experimental groups to be examined:" /> 
       </children></AnchorPane> 
     </content> 
    </Tab> 
    <Tab text="Untitled Tab 2"> 
     <content> 
     <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" /> 
     </content> 
    </Tab> 
    </tabs> 
</TabPane> 

不知道如果這一切是必要的,但如果有人可以幫助我在這裏我真的很感激它。謝謝!

回答

1

這甚至不適合我,因爲你的FXML有錯誤。 addGroup按鈕的處理程序應爲"#handleButtonAction"(「#」表示它屬於控制器,並且是腳本)。

另外,由於處理程序方法需要一個ActionEvent因爲它的參數,它應該是

onAction="#handleButtonAction" 

(未onMouseClicked)。

+0

不能upvote你的答案,但它確實有幫助,謝謝! – 2014-10-10 00:32:15

+0

不客氣。如果它回答了你的問題,你可以接受答案(即使你不能高舉)。將來,如果您在執行代碼時收到異常,則應該這樣說,並將堆棧跟蹤作爲問題的一部分。 – 2014-10-10 11:49:42