Как я могу ограничить границы веб-представления в глюонном мобильном - JavaFX? - PullRequest
0 голосов
/ 21 октября 2019

Я работал над созданием JavaFX-приложения для мобильных устройств на основе глюона. Это будет иметь сайт в отзывчивом виде. Я добавил домашний экран с информацией о сообществе. Поскольку это игровое сообщество, я добавил игровую статистику, чтобы показать статистику нашего сервера. Как вы можете видеть на картинке ниже: https://i.imgur.com/dWiiLe2.png

Первая проблема: я хочу, чтобы она отображала только изображение игровой статистики, а не белую область.

2-й выпуск: это доп. Я добавил фоновое изображение. Кроме того, я добавил 2 панели. topbox; centerbox; Я как-то хочу, чтобы у них обоих было одно и то же изображение. Есть ли возможность сделать это?

1-й: Я пытался ограничить его setMinSize(dobule,double). Но это никак не влияет. Я также попытался добавить его в другой pane, чтобы я мог ограничить его размер. но webview имеет собственную настройку, поэтому она не работает!

2-й: Я попытался добавить background-image к view. но pane держит это позади. Я не смог установить фон панели невидимым / прозрачным.

это код:

public void initialize() {

        initialscreen.showingProperty().addListener((ObservableValue<? extends Boolean> obs, Boolean oldValue, Boolean newValue) -> {

            appbar = MobileApplication.getInstance().getAppBar();
            appbar.setTitleText("HOME");
            appbar.setSpacing(10);
            appbar.setStyle("-fx-background-color: #ff6666; -fx-font-weight: bold");

            Button forumbtn = new Button("FORUM");
            forumbtn.setStyle("-fx-font-weight: bold; -fx-background-color: #333333; "
                    + "-fx-background-radius: 10em");

            Button donatebtn = new Button("DONATE");
            donatebtn.setStyle("-fx-font-weight: bold; -fx-background-color: #333333; "
                    + "-fx-background-radius: 10em");
            appbar.getActionItems().addAll(forumbtn,donatebtn);

            ecwelcome.setText(WelcomeMsg);
            ecwelcome.setTextFill(Color.WHITE);
            ecwelcome.setStyle("-fx-font-size: 24; -fx-font-weight: bolder");
            ecwelcome.setTextAlignment(TextAlignment.LEFT);

            ecinfo.setText(InfoMsg);
            ecinfo.setTextFill(Color.WHITE);
            ecinfo.setStyle("-fx-font-size:14; -fx-font-weight: bold");
            ecinfo.setFont(Font.font("Times New Roman", FontWeight.EXTRA_LIGHT, 14));

            ecstats.setText("EC STATS:");
            ecstats.setTextFill(Color.WHITE);
            ecstats.setStyle("-fx-font-size: 24; -fx-font-weight: bolder");
            ecstats.setTextAlignment(TextAlignment.LEFT);


            mywebengine.loadContent("<html><iframe src=\"http://www.game-state.com/iframe.php?ip=188.165.247.223&port=8196&bgcolor=363636&bordercolor=26A8FF&fieldcolor=ffffff&valuecolor=ededed&oddrowscolor=4D4D4D&showgraph=true&showplayers=true&graphvalues=ededed&graphaxis=ffffff&width=220&graph_height=105&plist_height=101&font_size=9\" frameborder=\"0\" scrolling=\"no\" style=\"width: 220px; height: 371px\"></iframe></html>"); 
            mywebengine.getLoadWorker().stateProperty().addListener((ObservableValue<? extends Worker.State> observable, Worker.State oldValue1, Worker.State newValue1) -> {
                if( newValue1 == Worker.State.FAILED ) {
                    Label failed = new Label("Failed to load EC Stats..\n"
                            + "Please check your internet.");
                    failed.setTextFill(Color.BLACK);
                    failed.setStyle("-fx-font-weight: bold; -fx-font-size: 14");
                }
             });

            topbox.setSpacing(20);
            topbox.setPadding(new Insets(30,10,30,10));
            topbox.getChildren().addAll(ecwelcome,ecinfo);

            centerbox.setSpacing(20);
            centerbox.setPadding(new Insets(0,10,30,10));
            centerbox.getChildren().addAll(ecstats,myweb);

            Image image = new Image(EC_APP.class.getResourceAsStream("/homeground.jpg"));

            BackgroundImage myBI= new BackgroundImage(image,
            BackgroundRepeat.REPEAT, BackgroundRepeat.NO_REPEAT, BackgroundPosition.DEFAULT,
            BackgroundSize.DEFAULT);
            topbox.setBackground(new Background(myBI));
            centerbox.setBackground(new Background(myBI));


        });

    }

Он должен загружать the gamestats image only не всю веб-страницу.

и,если возможно применить фон просмотра к обеим панелям.

...