Vadala,

I don't have a good answer to your question. So I am adding the openjfx-dev@openjdk.java.net alias.

In the future, please send your question to this alias.

Thank you very much,
Mong

Vadala, Sirish wrote:

Hello Hang,

My name is Sirish Vadala, working for Legislative Data Center, Sacramento, California. Right now I am working on a project implemented on JavaFX 8 (jdk1.8.0_05) and have a quick question on one of the UI related issues that my team is facing.

Coming to the issue I am not able to programmatically place the ScrollPane's scroll position using setVValue(double) method of ScrollPane. For example, if you look at the sample program below, the vertical scroll bar position always remains on the top what so ever the vValue is set to. Can you please let me know if this is an existing issue being worked on or if I am doing something wrong in implementation?

I highly appreciate your response at your convenience on this issue.

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

import java.util.logging.Level;

import java.util.logging.Logger;

import javafx.application.Application;

import javafx.embed.swing.SwingFXUtils;

import javafx.event.ActionEvent;

import javafx.event.EventHandler;

import javafx.scene.Scene;

import javafx.scene.control.Button;

import javafx.scene.control.ScrollPane;

import javafx.scene.control.ScrollPane.ScrollBarPolicy;

import javafx.scene.image.Image;

import javafx.scene.image.ImageView;

import javafx.scene.layout.VBox;

import javafx.stage.FileChooser;

import javafx.stage.Stage;

import javax.imageio.ImageIO;

public class JavaFXPixel extends Application {

    private ImageView myImageView;

    private ScrollPane scrollPane;

    @Override

    public void start(Stage primaryStage) {

        Button btnLoad = new Button("Load");

        btnLoad.setOnAction(btnLoadEventListener);

        myImageView = new ImageView();

        scrollPane = new ScrollPane();

        scrollPane.setPrefSize(300, 250);

        scrollPane.setVbarPolicy(ScrollBarPolicy.AS_NEEDED);

        scrollPane.setHbarPolicy(ScrollBarPolicy.AS_NEEDED);

        scrollPane.setContent(myImageView);

       // STILL MY VERTICAL SCROLL POSITION IS ALWAYS PLACED ON THE TOP

        scrollPane.setVvalue(1.0);

        VBox rootBox = new VBox();

        rootBox.getChildren().addAll(btnLoad, scrollPane);

        Scene scene = new Scene(rootBox, 300, 300);

        primaryStage.setTitle("My Test Program");

        primaryStage.setScene(scene);

        primaryStage.show();

    }

    public static void main(String[] args) {

        launch(args);

    }

private final EventHandler<ActionEvent> btnLoadEventListener = (ActionEvent t) -> {

        FileChooser fileChooser = new FileChooser();

        //Set extension filter

FileChooser.ExtensionFilter extFilterJPG = new FileChooser.ExtensionFilter("JPG files (*.jpg)", "*.JPG");

FileChooser.ExtensionFilter extFilterPNG = new FileChooser.ExtensionFilter("PNG files (*.png)", "*.PNG");

fileChooser.getExtensionFilters().addAll(extFilterJPG, extFilterPNG);

        //Show open file dialog

        File file = fileChooser.showOpenDialog(null);

        try {

            BufferedImage bufferedImage = ImageIO.read(file);

            Image image = SwingFXUtils.toFXImage(bufferedImage, null);

            myImageView.setImage(image);

            scrollPane.setContent(null);

            scrollPane.setContent(myImageView);

            scrollPane.setVvalue(1.0);

        } catch (IOException ex) {

Logger.getLogger(JavaFXPixel.class.getName()).log(Level.SEVERE, null, ex);

        }

    };

}

Thanks.

Sirish Vadala

916 341 8878


Reply via email to