- 171
- 91
- CPU
- AMD Ryzen 5 3600
- Dissipatore
- CoolerMaster Hyper 212 Black Edition
- Scheda Madre
- Aorus B450I PRO WIFI
- HDD
- Samsung 860 EVO 500 GB + WD Red NAS Edition
- RAM
- 32GB Corsair Vengeance 3200mhz
- GPU
- Gigabyte 1650 SUPER Windforce
- Monitor
- Samsung C27F396
- PSU
- Seasonic Focus GX-550, 80+ GOLD
- Case
- NZXT H210
- Periferiche
- Drevo Tyrfing V2, Logitech G402 Hyperion Fury
- OS
- Windows 10 Pro, Ubuntu
Buongiorno a tutti!!
Sono qui per esporvi un problema che sto avendo con la WebView di JavaFX:
Sto sviluppando una piccola applicazione in Java tramite la quale devo accedere al sito Nike Sneakrs (non sono sicuro di poterlo citare, nel caso non lo possa fare chiedo venia)
Il problema è che quando eseguo l'applicazione mi viene caricato il sito in una sua versione piuttosto scarna ed inoltre non riesco ad accedere dal sito principale (il quale però viene caricato correttamente)
lascio le immagini per rendere l'idea
Vi lascio qui il codice:
Main.java
layout.fxml
layoutController.java
Spero di essere stato chiaro e ringrazio infinitamente tutti coloro che mi aiuteranno
:thanks:
Sono qui per esporvi un problema che sto avendo con la WebView di JavaFX:
Sto sviluppando una piccola applicazione in Java tramite la quale devo accedere al sito Nike Sneakrs (non sono sicuro di poterlo citare, nel caso non lo possa fare chiedo venia)
Il problema è che quando eseguo l'applicazione mi viene caricato il sito in una sua versione piuttosto scarna ed inoltre non riesco ad accedere dal sito principale (il quale però viene caricato correttamente)
lascio le immagini per rendere l'idea
Vi lascio qui il codice:
Main.java
Java:
package nikesnkrs;
import java.io.IOException;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class Main extends Application{
private static Stage primaryStage;
private BorderPane rootLayout;
@Override
public void start(Stage primaryStage) {
this.primaryStage=primaryStage;
this.primaryStage.setTitle("Nike Sneakers 2019");
initLayout();
}
public void initLayout(){
try{
FXMLLoader loader= new FXMLLoader();
loader.setLocation(Main.class.getResource("view/layout.fxml"));
rootLayout=(BorderPane) loader.load();
Scene scene=new Scene(rootLayout);
primaryStage.setScene(scene);
primaryStage.show();
}catch (IOException e){
e.printStackTrace();
}
}
public static Stage getPrimaryStage() {
return primaryStage;
}
public static void main(String[] args){
launch(args);
}
}
layout.fxml
XML:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.SplitPane?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.web.WebView?>
<BorderPane minHeight="600.0" minWidth="500.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="nikesnkrs.view.layoutController">
<center>
<SplitPane dividerPositions="0.9531772575250836" orientation="VERTICAL" prefHeight="200.0" prefWidth="160.0" BorderPane.alignment="CENTER">
<items>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="100.0" prefWidth="160.0">
<children>
<WebView fx:id="webview" layoutX="143.0" layoutY="136.0" prefHeight="567.0" prefWidth="498.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" />
</children>
</AnchorPane>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="100.0" prefWidth="160.0" SplitPane.resizableWithParent="false">
<children>
<Button layoutX="11.0" mnemonicParsing="false" onAction="#ricarica" text="Ricarica Sito" AnchorPane.leftAnchor="11.0" />
<Button layoutX="109.0" mnemonicParsing="false" onAction="#indietro" text="Indietro" AnchorPane.leftAnchor="109.0" />
<Label layoutX="302.0" layoutY="4.0" text="Nike Sneakrs 2019 " />
</children>
</AnchorPane>
</items>
</SplitPane>
</center>
</BorderPane>
layoutController.java
Java:
package nikesnkrs.view;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebHistory;
import javafx.scene.web.WebView;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
public class layoutController implements Initializable{
@FXML
private WebView webview;
private WebEngine webEngine;
private WebHistory history;
private ObservableList<WebHistory.Entry> entries;
@Override
public void initialize(URL location, ResourceBundle resources) {
loadSite();
}
@FXML
public void ricarica(ActionEvent event) {
loadSite();
}
@FXML
public void indietro(ActionEvent event) {
history = webEngine.getHistory();
entries = history.getEntries();
history.go(-1);
}
private void loadSite() {
webEngine = webview.getEngine();
webEngine.setUserAgent("Mozilla/5.0 (X11; Linux x86_64)");
webEngine.setJavaScriptEnabled(true);
webEngine.load("https://www.nike.com/it/launch/");
}
}
Spero di essere stato chiaro e ringrazio infinitamente tutti coloro che mi aiuteranno
:thanks: