2017-03-18 21 views
1

私はこのコンストラクタを持っており、グリッドペインにラベルを埋めようとしています。 私はレンガの壁にぶつかり、何が間違っているのか分かりません。 1行に13個のラベルを作成する必要があります。lablesを使ったGridPaneの塗りつぶし

コンストラクタ:コントローラで

public class Labels { 
    @FXML 
    GridPane gridPane = new GridPane(); 

    public Labels(String labelname, int columnIndex, int rowIndex) { 
     Label label = new Label(); 
     gridPane.setColumnIndex(label, columnIndex); 
     gridPane.setRowIndex(label, rowIndex); 
     label.setId(labelname+columnIndex); 
     label.setVisible(true); 
     label.setText("test"); 
    } 

} 

ループ:

for(int i2=0; i2<13; i2++){ 

     Labels labels = new Labels("label", i2, 3); 
} 

答えて

0

あなたはGridPaneLabel秒を追加していない

import javafx.application.Application; 
import javafx.scene.Scene; 
import javafx.scene.control.Label; 
import javafx.scene.layout.GridPane; 
import javafx.stage.Stage; 

public class LabelsRow extends Application { 

    GridPane gridPane; 

    @Override 
    public void start(Stage primaryStage) { 

     gridPane = new GridPane(); 

     for(int i2=0; i2<13; i2++){ 
      new Labels("label "+i2 , i2, 3); 
     } 

     Scene scene = new Scene(gridPane); 
     primaryStage.setScene(scene); 
     primaryStage.show(); 
    } 

    public class Labels { 

     Labels labels; 

     Labels(String labelname, int columnIndex, int rowIndex) { 
      Label label = new Label(); 
      //gridPane.setColumnIndex(label, columnIndex); 
      //gridPane.setRowIndex(label, rowIndex); 
      gridPane.add(label, columnIndex, rowIndex); 
      label.setId(labelname+columnIndex); 
      label.setVisible(true); 
      label.setText(labelname); 
     } 

    } 

    public static void main(String[] args) { 
     launch(args); 
    } 
} 
1

(必ずmcveを投稿します)。さらに、Labelごとに新しいGridPaneを使用し、どこでもGridPaneを使用しないでください。

public class Labels { 

    private GridPane gridPane = new GridPane(); 

    public GridPane getGridPane() { 
     return gridPane; 
    } 

    public void addLabel(String labelname, int columnIndex, int rowIndex) { 
     Label label = new Label(); 
     GridPane.setColumnIndex(label, columnIndex); 
     GridPane.setRowIndex(label, rowIndex); 
     label.setId(labelname+columnIndex); 
     label.setText("test"); 

     gridPane.getChildren().add(label); 
    } 

} 
Labels labels = new Labels(); 

for(int i2=0; i2<13; i2++){ 
    labels.addLabel("label", i2, 3); 
} 

GridPane gridPane = labels.getGridPane(); 
// TODO: display gridPane