2016-07-20 7 views
-3

私はそれを素早く保ちます。私は標準的な計算機を作成しようとしています。私はBorderPaneを使用したいので、私は私の表示を維持することができます:私は、アレイ使用していますがボタン[] [] to node - java

TextField display = new TextField(); 
pane.setTop(display); 


を、私は、その後の中央に配置するために、単一のオブジェクトとしてボタンの配列を使用したいと思いますペイン。

Button [][] keys = new Button [a][b]; 
pane.setCenter(keys); 

しかし、私はエラーを取得する:

Button [][] cannot be converted to Node. 

私はとにかくがあれば、私はノードの値を取るか、私はメソッドを作成することができるかどうか/になるための要素を解析することができます知っていただきたいと思いますそうするために。

ありがとうございました!

+1

「GridPane」にボタンを追加してみませんか? – trashgod

+0

グリッド区画を追加し、境界区画--- bpane.setCenter(gpane)に配置しました。しかし、gpane自体にボタンを追加すると、ループを使って自動化します。 (キー[i] [j]、i、j)私は、ここでは - > for(int i = 0; i = list.length(); i ++){for j .......} {gpane.add別のエラーが発生します。 Intはブール値に変換できません。申し訳ありませんが、私はnoob笑です。 @trashgod –

答えて

0

BorderPanecenterノードは単一ノードです。複数のノードを追加することはできません。つまり、適切なParentに追加する必要があります。コメントでmetioned問題として

@Override 
public void start(Stage primaryStage) { 
    BorderPane pane = new BorderPane(); 

    Button[][] keys = new Button[3][]; 
    for (int i = 0; i < 3; i++) { 
     int num = (12 - i)/3; 
     Button[] column = new Button[num]; 
     keys[i] = column; 
     for (int j = 0, key = 7 + i; j < num; j++, key -= 3) { 
      Button button = new Button(Integer.toString(Math.max(0, key))); 
      column[j] = button; 

      // make button width resizeable 
      button.setMaxWidth(Double.MAX_VALUE); 

      // buttons should fill the available width 
      GridPane.setFillWidth(button, Boolean.TRUE); 
     } 
    } 

    GridPane gpane = new GridPane(); 

    for (int i = 0; i < keys.length; i++) { 
     Button[] column = keys[i]; 
     gpane.addColumn(i, Arrays.copyOf(column, column.length, Node[].class)); 
    } 

    // make 0-Button fill 3 columns 
    GridPane.setColumnSpan(keys[0][3], 3); 

    pane.setCenter(gpane); 

    Scene scene = new Scene(pane); 

    primaryStage.setScene(scene); 
    primaryStage.show(); 
} 

GridPane

例適当な候補であろうi=list.length()に割り当て、従って結果であるので

for(int i=0; i=list.length(); i++) 

エラーを生じますこの場合、intの割り当ての対象と同じタイプです。 Javaでは、forループの真ん中の式は、booleanの型を持つことが期待されています。代入演算子=を等価演算子==と混同しましたが、ここでは不等号でなければなりません。長さに達していない限りループが実行されるはずです。さらに、()括弧は、長さを返す配列内にメソッドがないため、私には疑わしいと思われます。これはフィールドです。

for(int i=0; i!=keys.length; i++)