2014-05-08 68 views
0

我有TableView與id,名稱,姓氏等。我也有添加按鈕,它增加了玩家到tableview。如何在添加btn時添加具有默認id(0,1,2,3 ...)的播放器。我Player類:將項目添加到ID爲

public class CoreAppFXMLController implements Initializable { 

/** 
* tekst_fildovi 
*/ 
@FXML 
private TextField playerNameFld; 
@FXML 
private TextField playerLNFld; 
@FXML 
private TextField playerNumberFld; 
@FXML 
private TextField playerPointsFld; 
@FXML 
private TextField coachesNameFld; 
@FXML 
private TextField coachesLNFld; 
@FXML 
private TextField coachesAgeFld; 
@FXML 
private TextField teamNameFld; 
@FXML 
private TextField teamFromFld; 
@FXML 
private TextField teamPointsFld; 
/* 
* @FXML private ChoiceBox<Coaches> teamWLFld; 
*/ 
@FXML 
private ChoiceBox<String> positionCb; 
/** 
* colone 
*/ 
@FXML 
private TableColumn<Player, Integer> playerIdCol; 
@FXML 
private TableColumn<Player, String> playerNameCol; 
@FXML 
private TableColumn<Player, String> playerLNCol; 
@FXML 
private TableColumn<Player, String> playerNumberCol; 
@FXML 
private TableColumn<Player, String> playerPointsCol; 
@FXML 
private TableColumn<Coaches, String> coachesNameCol; 
@FXML 
private TableColumn<Coaches, String> coachesLNCol; 
@FXML 
private TableColumn<Coaches, String> coachesAgeCol; 
@FXML 
private TableColumn<Teams, String> teamsNameCol; 
@FXML 
private TableColumn<Teams, String> teamsFromCol; 
@FXML 
private TableColumn<Teams, String> teamsPointsCol; 

/** 
* @param tabele 
*/ 
@FXML 
private TableView<Player> playerTable; 
@FXML 
private TableView<Coaches> coachesTable; 
@FXML 
private TableView<Teams> teamsTable; 

private ObservableList<Player> playerData; 

private ObservableList<Coaches> coachesData; 

private ObservableList<Teams> teamsData; 

public class Player { 

    private SimpleIntegerProperty playerId = new SimpleIntegerProperty(); 
    private SimpleStringProperty name = new SimpleStringProperty(); 
    private SimpleStringProperty lastName = new SimpleStringProperty(); 
    private SimpleStringProperty number = new SimpleStringProperty(); 
    private SimpleStringProperty points = new SimpleStringProperty(); 

    public Player(int playerId, String name, String lastName, String number, 
      String points) { 
     this.playerId = new SimpleIntegerProperty(playerId); 
     this.name.setValue(name); 
     this.lastName.setValue(lastName); 
     this.number.setValue(number); 
     this.points.setValue(points); 

    } 

    public void setId(int id) { 
     playerId.set(id); 
    } 

    public int getId() { 
     return playerId.get(); 
    } 

    public String getName() { 
     if (name != null) 
      return ""; 
     return name.getValueSafe(); 
    } 

    public String getlastName() { 
     if (lastName != null) 
      return ""; 
     return lastName.getValueSafe(); 
    } 

    public String getNumber() { 
     if (number != null) 
      return ""; 
     return number.getValueSafe(); 
    } 

    public String getPoints() { 
     if (points != null) 
      return ""; 
     return points.getValueSafe(); 
    } 

    public SimpleIntegerProperty idProperty() { 
     return playerId; 
    } 

    public SimpleStringProperty nameProperty() { 
     return name; 
    } 

    public SimpleStringProperty lastNameProperty() { 
     return lastName; 
    } 

    public SimpleStringProperty numberProperty() { 
     return number; 
    } 

    public SimpleStringProperty pointsProperty() { 
     return points; 
    } 

} 

/** 
* Initializes the controller class. 
*/ 
public void initialize(URL url, ResourceBundle rb) { 

    playerIdCol 
      .setCellValueFactory(new PropertyValueFactory<Player, Integer>(
        "playerId")); 

    positionCb.setItems(FXCollections.observableArrayList("PLAYMAKER", 
      "SHOOTER", "WING", "CENTER", "CENTER-WING")); 
    playerNameCol 
      .setCellValueFactory(new PropertyValueFactory<Player, String>(
        "name")); 
    playerLNCol 
      .setCellValueFactory(new PropertyValueFactory<Player, String>(
        "lastName")); 
    playerNumberCol 
      .setCellValueFactory(new PropertyValueFactory<Player, String>(
        "number")); 
    playerPointsCol 
      .setCellValueFactory(new PropertyValueFactory<Player, String>(
        "points")); 
    coachesNameCol 
      .setCellValueFactory(new PropertyValueFactory<Coaches, String>(
        "name")); 
    coachesLNCol 
      .setCellValueFactory(new PropertyValueFactory<Coaches, String>(
        "lastName")); 
    coachesAgeCol 
      .setCellValueFactory(new PropertyValueFactory<Coaches, String>(
        "age")); 

    playerData = FXCollections.observableArrayList(); 
    playerTable.setItems(playerData); 
    playerTable.setEditable(false); 

    coachesData = FXCollections.observableArrayList(); 
    coachesTable.setItems(coachesData); 
    coachesTable.setEditable(false); 

    teamsData = FXCollections.observableArrayList(); 
    teamsTable.setItems(teamsData); 
    teamsTable.setEditable(false); 

} 

public void addPlayersAction(ActionEvent event) { 
    playerData.add(new Player(1, playerNameFld.getText(), playerLNFld 
      .getText(), playerNumberFld.getText(), playerPointsFld 
      .getText())); 
    playerNameFld.clear(); 
    playerLNFld.clear(); 
    playerNumberFld.clear(); 
    playerPointsFld.clear(); 

} 

和我含的tableview FXML和playerIdCol:

<TableView fx:id="playerTable" prefHeight="295.0" prefWidth="593.0" AnchorPane.bottomAnchor="290.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="219.0"> 
           <columns> 
           <TableColumn maxWidth="5000.0" minWidth="80.0" prefWidth="80.0" text="Id" fx:id="playerIdCol" /> 
           <TableColumn maxWidth="5000.0" minWidth="180.0" prefWidth="180.0" text="Name" fx:id="playerNameCol" /> 
           <TableColumn maxWidth="5000.0" minWidth="180.0" prefWidth="180.0" text="Lastname" fx:id="playerLNCol" /> 
           <TableColumn maxWidth="5000.0" minWidth="80.0" prefWidth="80.0" text="Number" fx:id="playerNumberCol" /> 
           <TableColumn maxWidth="5000.0" minWidth="80.0" prefWidth="80.0" text="Points" fx:id="playerPointsCol" /> 
           <TableColumn maxWidth="5000.0" minWidth="180.0" prefWidth="180.0" text="Position" fx:id="playerPositionCol" /> 
           </columns> 
          </TableView> 

謝謝前期。

回答

0

這不是一個JavaFX問題,這是一個Java問題。

也許你認爲計算一個靜態字段Player小號

private static int playerCount = 0; 

然後

new Player(playerCount++, ...); 

不同的方法很多。你只需要研究一下原理。

+0

是的,但我怎樣才能將playerCount連接到playerIdCol?實際顯示id到tableview。 – tadija