2014-09-05 2 views
0

HiEveryone,Как установить TextField сверху с помощью Javafx?

Я новичок в Javafx и пытается установить TextField на вершине, и я использую GridPane. Так что я попробовал этот код, но это дает мне ошибки:

Исходный код:

package sample; 

import javafx.application.Application; 
import javafx.geometry.HPos; 
import javafx.geometry.VPos; 
import javafx.scene.Scene; 
import javafx.scene.layout.GridPane; 
import javafx.scene.web.WebEngine; 
import javafx.scene.web.WebView; 
import javafx.stage.Stage; 
import javafx.scene.control.TextField; 
import javafx.geometry.HPos; 

public class Main extends Application { 
     @Override 
     public void start (Stage primaryStage){ 
     primaryStage.setTitle("Modern web browser made by Rajendra Arora using JavaFX."); 
     WebView wv = new WebView(); 
     WebEngine we = wv.getEngine(); 
     we.load("http://www.google.com/"); 

     TextField tf = new TextField("http://www.google.com/"); 
     tf.setMaxHeight(Double.MAX_VALUE); 
     tf.positionCaret(25); 
     GridPane sp = new GridPane(); 
     sp.getChildren().add(wv); 
     GridPane.setConstraints(tf, 1, 0, 0, 0, HPos.CENTER, VPos.CENTER); 

     Scene scene = new Scene(sp, 600, 500); 
     primaryStage.setScene(scene); 
     primaryStage.show(); 
     } 

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

Но получение этой ошибки:

Exception in Application start method 
Exception in thread "main" java.lang.RuntimeException: Exception in Application start method 
    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:894) 
    at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:56) 
    at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:158) 
    at java.lang.Thread.run(Thread.java:744) 
Caused by: java.lang.IllegalArgumentException: rowSpan must be greater or equal to 1, but was 0 
    at javafx.scene.layout.GridPane.setRowSpan(GridPane.java:346) 
    at javafx.scene.layout.GridPane.setConstraints(GridPane.java:591) 
    at sample.Main.start(Main.java:27) 
    at com.sun.javafx.application.LauncherImpl$8.run(LauncherImpl.java:837) 
    at com.sun.javafx.application.PlatformImpl$7.run(PlatformImpl.java:335) 
    at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:301) 
    at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:298) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at com.sun.javafx.application.PlatformImpl$6.run(PlatformImpl.java:298) 
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) 
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) 
    at com.sun.glass.ui.win.WinApplication.access$300(WinApplication.java:39) 
    at com.sun.glass.ui.win.WinApplication$4$1.run(WinApplication.java:112) 
    ... 1 more 

Пожалуйста, помогите :(

Помощь будут оценены!

+0

Пожалуйста, покажите, какая строка генерирует исключение (то есть это строка 27). –

+0

Показ ошибки в 'GridPane.setConstraints (tf, 1, 0, 0, 0, HPos.CENTER, VPos.CENTER);' –

ответ

0

Сообщение об ошибке довольно ясно: вы вызываете метод setConstraints(...) и проезд 0 для rowSpan и colSpan. В сообщении об ошибке указано, что вы не можете установить rowSpan в ноль. (Вы, по-видимому, не можете установить colSpan в ноль.) Эти ограничения, похоже, имеют смысл.

+0

Хорошо .. ты был прав :) ..thanks .., но я бы знал еще одну вещь .. Я не могу видеть, что TextField внутри рамки .. Можете ли вы помочь мне PLS .. –

+0

Вы забыли добавить текстовое поле в панель сетки. –

+0

Но я вижу 'tf' здесь ...' GridPane.setConstraints (tf, 1, 0, 0, 0, HPos.CENTER, VPos.CENTER); ' –

Смежные вопросы