ID가

2014-05-08 3 views
0

인 TableView에 항목 추가 ID, 이름, 성 등이있는 TableView가 있습니다. 또한 플레이어를 tableview에 추가하는 버튼이 있습니다. add btn을 눌렀을 때 어떻게 기본 id (0,1,2,3 ...)로 플레이어를 추가 할 수 있습니까?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(); 

} 

내 FXML 들어있는 tableview 및 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 질문입니다.

당신은

private static int playerCount = 0; 

그런 다음

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

는 서로 다른 접근 방식의 많은 있습니다 Player의 계산 정적 필드를 만들 수 있습니다. 원리를 조금 공부하면됩니다.

+0

예.하지만 해당 playerCount를 playerIdCol에 어떻게 연결할 수 있습니까? 실제로 id를 tableview에 표시합니다. – tadija