2016-06-27 15 views
2

Oracle TutorialでJavaFXを学習しています。このトピックについては混乱しています。私の検索が役に立たない結果をもたらさなかったので、私は混乱した唯一の人のようです。私は2列(0,1)と3行(0,1,2)で基本的なGridPaneを作成しています。最初の行にはタイトルがあり、残りの2行には左にラベルがあり、右にテキストボックスがあります - ログイン画面ですJavaFX GridPane col /行間vsインデックス

ログイン
ユーザー名| [_______]
パスワード| [_______]

をここでグリッドを埋めるためのコードです:

Text scenetitle = new Text("Login"); 
    scenetitle.setFont(Font.font("Tahoma", FontWeight.NORMAL, 20)); 
    grid.add(scenetitle,0,0,2,1); // Row span here is set to 1 

    Label userName = new Label("User Name"); 
    grid.add(userName,0,1); 

    TextField userTField = new TextField(); 
    grid.add(userTField,1,1); 

    Label passName = new Label("Password"); 
    grid.add(passName,0,2); // Here I'm referencing a row index of 2 

    TextField passTField = new TextField(); 
    grid.add(passTField,1,2) 

それは基本的にチュートリアルからわずかコピー&ペーストだとコードは、完璧に動作します。しかし、私の混乱は、私は1の行スパンを持っているという事実から来ていますが、私は2の行インデックスを参照しています。私は行と列のスパンを切り替えることを試みたが、それはそれを台無しにしたので、これは正しいと確信しています。私は何が欠けていますか?

答えて

4

それはに便利ですすべてのdifferent.Firstです:あなたはグリッドレイアウト(列と行の間のスペース要素などの幅と高さ)で何が起こっているか見ることができます

 setGridLinesVisible(true); 

。ドキュメントから についてadd方法:最初の行で

add(Node child,int columnIndex,int rowIndex,int colspan,int rowspan) 

 grid.add(scenetitle,0,0,2,1); 

あなたは要素scenetitleを追加し、それが 0と行の上に配置されますとの2つにまたがる可能性があります。列行フィニッシュラインで

 grid.add(passName,0,2); 

もし要素passNameを追加し、それがカラム 0と 2上に配置され、あなたそれがどのように広がることができるかについての価値を与えていない。

特別な状況GridPane

例えば、あなたはスパンをデフォルトではないとカラム 0と 0と行スパン 4、及び2行目の項目の項目がある場合スパンの最大値(この例では4)に渡って与えられます。

+0

わかりました。だから基本的に、colspanはグリッド要素の「幅」に似ていて、行スパンは「高さ」と似ていますか? – AlexanderJ93

+0

@ AlexanderJ93列のスパンを2に設定し、GridPaneに2つの列がある場合、項目は2つの列を捕まえることによって大きくなります。特別な状況についての例を挙げてください。また、GridPaneで試してみると、(setGridLinesVisible(true))有効にしてください。本当に役立ちます。 – GOXR3PLUS

関連する問題