如何在单击按钮时设置网页?使用JavaFX

时间:2015-01-20 21:30:42

标签: netbeans webview javafx

我正试图从URL exapmle:TextField获得http://www.google.com,我有一个WebView,点击“输入密钥”即可看到它但问题是,当我运行应用程序时,它没有显示任何注意我正在使用FXML File。这是我已经进行过的代码:

@FXML
private void onpressed (ActionEvent ee) {
     text1.setOnKeyPressed(new EventHandler<KeyEvent>() {
         public void handle(KeyEvent evt) {
       if (evt.getCode() == KeyCode.ENTER){
       String az = text1.getText();
       //c.1
       if(text1.getText().equals("1")){
           web1.setVisible(true);
            String hh = text11.getText();
            Socket socket = new Socket();

    try {
        //open cursor
        text1.setCursor(Cursor.WAIT);
        que.setCursor(Cursor.WAIT);
        writ.setCursor(Cursor.WAIT);
        ancpa.setCursor(Cursor.WAIT);
        web1.setCursor(Cursor.WAIT);
        web2.setCursor(Cursor.WAIT);
        web3.setCursor(Cursor.WAIT);
        web4.setCursor(Cursor.WAIT);
        web5.setCursor(Cursor.WAIT);
        web6.setCursor(Cursor.WAIT);
        web7.setCursor(Cursor.WAIT);
        web8.setCursor(Cursor.WAIT);
        web9.setCursor(Cursor.WAIT);
        //do work
        WebEngine myWebEngine = web1.getEngine();
        myWebEngine.load("http://www.google.com");
        //close the window chooser
        Stage stage = new Stage();
          Parent root = FXMLLoader.load(getClass().getResource("Choose.fxml"));
          Scene scene = new Scene(root);
         stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
              @Override public void handle(WindowEvent t) { } });
        //close cursor
        ancpa.setCursor(Cursor.DEFAULT);
        web1.setCursor(Cursor.DEFAULT);
        web2.setCursor(Cursor.DEFAULT);
        web3.setCursor(Cursor.DEFAULT);
        web4.setCursor(Cursor.DEFAULT);
        web5.setCursor(Cursor.DEFAULT);
        web6.setCursor(Cursor.DEFAULT);
        web7.setCursor(Cursor.DEFAULT);
        web8.setCursor(Cursor.DEFAULT);
        web9.setCursor(Cursor.DEFAULT);
    }
   catch (IOException e){
       final  Stage stg = new Stage();           
        stg.initModality(Modality.APPLICATION_MODAL);
        stg.initOwner(stg);
        stg.setTitle("Cannot connect to the internet /n Please Verify your connection internet");
        labelno.setText("Cannot connect to the internet...");
        //close chooser
        Stage stage = new Stage();
         stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
              @Override public void handle(WindowEvent t) { } });

       //set cursor
         ancpa.setCursor(Cursor.DEFAULT);
        web1.setCursor(Cursor.DEFAULT);
        web2.setCursor(Cursor.DEFAULT);
        web3.setCursor(Cursor.DEFAULT);
        web4.setCursor(Cursor.DEFAULT);
        web5.setCursor(Cursor.DEFAULT);
        web6.setCursor(Cursor.DEFAULT);
        web7.setCursor(Cursor.DEFAULT);
        web8.setCursor(Cursor.DEFAULT);
        web9.setCursor(Cursor.DEFAULT);
   } finally{
       try{ socket.close(); } catch (Exception e){ }
       }

          } 
         }
         }

 });

}

所以,任何机构都可以帮我解释一下这个代码的问题在哪里,我会非常感激:)

2 个答案:

答案 0 :(得分:2)

这是一个简单的示例应用程序,当您在文本字段中按Enter键时,该应用程序将转到您键入的网页:

package application;

import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.AnchorPane;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

public class Main extends Application {




@Override
public void start(Stage stage) throws Exception {
    AnchorPane pane = new AnchorPane();
    Scene scene = new Scene(pane);

    final TextField text1 = new TextField();
    WebView web = new WebView();
    final WebEngine webEngine= web.getEngine();
    text1.setOnKeyPressed(new EventHandler<KeyEvent>() {
        public void handle(KeyEvent ke) {
            if (ke.getCode().toString().equalsIgnoreCase("ENTER")) {
                           String urlString = text1.getText().trim();
                           webEngine.load(urlString);

    }
    }
    });
    pane.getChildren().addAll(web,text1);

    stage.setScene(scene);
    stage.sizeToScene();
    stage.show();
}
public static void main(String[] args) {
    Application.launch("application.Main");
}
} 

您可以尝试输入https://www.google.com,它应该带你去那里 如果你排除http或https它不应该工作
根据您的jre,您可能需要删除@Override
我希望这有帮助

答案 1 :(得分:0)

我不确定你是否想要'if(text1.getText()。equals(“1”)){'if语句只有在有人输入字符“1”时才会出现,但是你如何设置Web引擎是通过从文本字段(text1)获取文本并获取Web引擎来加载它,最好将.trim()放在最后,因为用户在开头时不小心输入了一个空格。结束。
所以你的代码应该是这样的:

String urlString = text1.getText().trim();
WebEngine myWebEngine = web1.getEngine();
myWebEngine.load(urlString);

你的complet代码应该是这样的:

@FXML
private void onpressed (ActionEvent ee) {
     text1.setOnKeyPressed(new EventHandler<KeyEvent>() {
         public void handle(KeyEvent evt) {
       if (evt.getCode() == KeyCode.ENTER){
       String az = text1.getText();
           web1.setVisible(true);
            String hh = text11.getText();
            Socket socket = new Socket();

    try {
        //open cursor
        text1.setCursor(Cursor.WAIT);
        que.setCursor(Cursor.WAIT);
        writ.setCursor(Cursor.WAIT);
        ancpa.setCursor(Cursor.WAIT);
        web1.setCursor(Cursor.WAIT);
        web2.setCursor(Cursor.WAIT);
        web3.setCursor(Cursor.WAIT);
        web4.setCursor(Cursor.WAIT);
        web5.setCursor(Cursor.WAIT);
        web6.setCursor(Cursor.WAIT);
        web7.setCursor(Cursor.WAIT);
        web8.setCursor(Cursor.WAIT);
        web9.setCursor(Cursor.WAIT);
        String urlString = text1.getText().trim();
        WebEngine myWebEngine = web1.getEngine();
        myWebEngine.load(urlString);    
        Stage stage = new Stage();
          Parent root = FXMLLoader.load(getClass().getResource("Choose.fxml"));
          Scene scene = new Scene(root);
         stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
              @Override public void handle(WindowEvent t) { } });
        //close cursor
        ancpa.setCursor(Cursor.DEFAULT);
        web1.setCursor(Cursor.DEFAULT);
        web2.setCursor(Cursor.DEFAULT);
        web3.setCursor(Cursor.DEFAULT);
        web4.setCursor(Cursor.DEFAULT);
        web5.setCursor(Cursor.DEFAULT);
        web6.setCursor(Cursor.DEFAULT);
        web7.setCursor(Cursor.DEFAULT);
        web8.setCursor(Cursor.DEFAULT);
        web9.setCursor(Cursor.DEFAULT);
    }
   catch (IOException e){
       final  Stage stg = new Stage();           
        stg.initModality(Modality.APPLICATION_MODAL);
        stg.initOwner(stg);
        stg.setTitle("Cannot connect to the internet /n Please Verify your connection internet");
        labelno.setText("Cannot connect to the internet...");
        //close chooser
        Stage stage = new Stage();
         stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
              @Override public void handle(WindowEvent t) { } });

       //set cursor
         ancpa.setCursor(Cursor.DEFAULT);
        web1.setCursor(Cursor.DEFAULT);
        web2.setCursor(Cursor.DEFAULT);
        web3.setCursor(Cursor.DEFAULT);
        web4.setCursor(Cursor.DEFAULT);
        web5.setCursor(Cursor.DEFAULT);
        web6.setCursor(Cursor.DEFAULT);
        web7.setCursor(Cursor.DEFAULT);
        web8.setCursor(Cursor.DEFAULT);
        web9.setCursor(Cursor.DEFAULT);
   } finally{
       try{ socket.close(); } catch (Exception e){ }
       }

          } 
         }
         }

 });

}

我希望这会有所帮助。如果您有任何问题,请询问。