有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在javaFX中同步大小和数据相同的两个Listview的垂直滚动

我是javaFx新手,我的GUI有两个listview。我想同步这两个列表的滚动。我试过this,但不适合我Image显示我想要同步的两个列表的滚动条。第一个代码是用于控制GUI的java代码,但是我无法上传整个代码和描述

java中的代码1:

@Override
     public void initialize(URL location, ResourceBundle resources) {
     this.refreshListViewWords();
    }

private void refreshListViewWords(){

 this.lvGermanWords.setOrientation(Orientation.VERTICAL);
 this.lvEnglishWords.setOrientation(Orientation.VERTICAL);

 this.lvGermanWordCellFactoryCallback = new LvGermanWordCellFactoryCallback();
 this.lvEnglishWordCellFactoryCallback = new LvEnglishWordCellFactoryCallback();

 this.words = WordListCsvHandler.getInstance().readWordFromCsvFile();
 this.wordToShow = WordListCsvHandler.getInstance().readWordFromCsvFileToShowInGui();

 ObservableList<Word> observableWordList = FXCollections.observableList(this.wordToShow);
 ObservableList<Word> observableEnglishWordList = FXCollections.observableList(this.wordToShow);

 this.lvGermanWords.getItems().clear();
 this.lvEnglishWords.getItems().clear();

 this.lvGermanWords.setItems(observableWordList);
 this.lvEnglishWords.setItems(observableEnglishWordList);


 this.lvGermanWords.setCellFactory(this.lvGermanWordCellFactoryCallback);
 this.lvEnglishWords.setCellFactory(this.lvEnglishWordCellFactoryCallback);

 this.lvEnglishWords.setOnScrollStarted(lvGermanWords.getOnScrollStarted());

 this.lvGermanWords.getSelectionModel().selectedItemProperty().addListener(this::onItemCellClick);
}

在javaFX中开发的代码2:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ChoiceBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.ListView?>
<?import javafx.scene.control.Menu?>
<?import javafx.scene.control.MenuBar?>
<?import javafx.scene.control.MenuItem?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>

<AnchorPane fx:id="textArea" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/15.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.siamiri.gui.word.GuiWordController">
 <children>
 <TextField fx:id="txtNumberOfGermanWords" editable="false" layoutX="98.0" layoutY="115.0" prefHeight="27.0" prefWidth="64.0" AnchorPane.leftAnchor="100.0" AnchorPane.rightAnchor="440.0" AnchorPane.topAnchor="120.0" />
 <TextField fx:id="txtNumberOfEnglishWords" editable="false" layoutX="98.0" layoutY="158.0" prefHeight="26.0" prefWidth="64.0" AnchorPane.leftAnchor="100.0" AnchorPane.rightAnchor="440.0" AnchorPane.topAnchor="163.0" />
 <TextField fx:id="txtLengthOfGermanWords" editable="false" layoutX="207.0" layoutY="115.0" prefHeight="26.0" prefWidth="64.0" AnchorPane.leftAnchor="200.0" AnchorPane.rightAnchor="340.0" AnchorPane.topAnchor="120.0" />
 <TextField fx:id="txtLengthOfEnglishWords" editable="false" layoutX="207.0" layoutY="158.0" prefHeight="26.0" prefWidth="64.0" AnchorPane.leftAnchor="200.0" AnchorPane.rightAnchor="340.0" AnchorPane.topAnchor="163.0" />
 <Label fx:id="lblNumberOfWords" layoutX="84.0" layoutY="87.0" prefHeight="18.0" prefWidth="109.0" text="Number of Words" AnchorPane.leftAnchor="80.0" AnchorPane.rightAnchor="430.0" AnchorPane.topAnchor="100.0">
 <font>
 <Font size="11.0" />
 </font></Label>
 <Label fx:id="lblLengthOfWords" layoutX="193.0" layoutY="87.0" prefHeight="18.0" prefWidth="93.0" text="Length of Words" AnchorPane.leftAnchor="180.0" AnchorPane.rightAnchor="330.0" AnchorPane.topAnchor="100.0">
 <font>
 <Font size="11.0" />
 </font></Label>
 <Label fx:id="lblGermanName" layoutX="308.0" layoutY="42.0" prefHeight="27.0" prefWidth="64.0" text="German" AnchorPane.leftAnchor="300.0" AnchorPane.topAnchor="45.0" />
 <Label fx:id="lblEnglishName" layoutX="308.0" layoutY="78.0" prefHeight="27.0" prefWidth="64.0" text="English" AnchorPane.leftAnchor="300.0" AnchorPane.topAnchor="80.0" />
 <TextField fx:id="txtGermanWord" layoutX="381.0" layoutY="37.0" prefHeight="27.0" prefWidth="210.0" promptText="Enter your German word" AnchorPane.leftAnchor="370.0" AnchorPane.rightAnchor="20.0" AnchorPane.topAnchor="45.0" />
 <TextField fx:id="txtEnglishWord" layoutX="381.0" layoutY="73.0" prefHeight="27.0" prefWidth="210.0" promptText="Enter your English word" AnchorPane.leftAnchor="370.0" AnchorPane.rightAnchor="20.0" AnchorPane.topAnchor="80.0" />
 <Button fx:id="btnSave" layoutX="299.0" layoutY="119.0" mnemonicParsing="false" onAction="#saveWord" prefHeight="32.0" prefWidth="70.0" text="Add" AnchorPane.leftAnchor="300.0" AnchorPane.rightAnchor="230.0" AnchorPane.topAnchor="120.0" />
 <Button fx:id="btnDelete" layoutX="393.0" layoutY="119.0" mnemonicParsing="false" onAction="#deleteWord" prefHeight="32.0" prefWidth="70.0" text="Delete" AnchorPane.leftAnchor="400.0" AnchorPane.rightAnchor="130.0" AnchorPane.topAnchor="120.0" />
 <MenuBar layoutX="1.0" layoutY="-2.0" prefHeight="32.0" prefWidth="600.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
 <menus>
 <Menu mnemonicParsing="false" text="File">
 <items>
 <MenuItem mnemonicParsing="false" onAction="#menuItemClose" text="Close" />
 <MenuItem mnemonicParsing="false" onAction="#menuItemLogout" text="Logout" />
 </items>
 </Menu>
 <Menu mnemonicParsing="false" text="Help">
 <items>
 <MenuItem mnemonicParsing="false" text="About" />
 </items>
 </Menu>
 </menus>
 </MenuBar>
 <Button layoutX="487.0" layoutY="118.0" mnemonicParsing="false" onAction="#showImageOfTheWord" prefHeight="32.0" prefWidth="93.0" text="show Image" AnchorPane.leftAnchor="487.0" AnchorPane.rightAnchor="20.0" AnchorPane.topAnchor="118.0" />
 <Label fx:id="lblGermanLength" layoutX="14.0" layoutY="115.0" prefHeight="27.0" prefWidth="58.0" text="German" AnchorPane.leftAnchor="10.0" AnchorPane.rightAnchor="520.0" AnchorPane.topAnchor="120.0" />
 <Label fx:id="lblEnglishLength" layoutX="14.0" layoutY="158.0" prefHeight="27.0" prefWidth="58.0" text="English" AnchorPane.leftAnchor="10.0" AnchorPane.rightAnchor="520.0" AnchorPane.topAnchor="163.0" />
 <Button disable="true" layoutX="300.0" layoutY="167.0" mnemonicParsing="false" prefHeight="27.0" prefWidth="170.0" text="Leitner box" AnchorPane.leftAnchor="300.0" AnchorPane.rightAnchor="130.0" AnchorPane.topAnchor="163.0" />
 <ListView fx:id="lvGermanWords" layoutX="186.0" layoutY="200.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="320.0" AnchorPane.topAnchor="200.0" />
 <ChoiceBox disable="true" layoutX="121.0" layoutY="45.0" prefWidth="150.0" AnchorPane.leftAnchor="121.0" AnchorPane.rightAnchor="420.0" AnchorPane.topAnchor="45.0" />
 <Label layoutX="14.0" layoutY="50.0" prefHeight="17.0" prefWidth="93.0" text="List by alphebet" />
 <Button fx:id="btnShowImage1" disable="true" layoutX="487.0" layoutY="158.0" mnemonicParsing="false" prefHeight="32.0" prefWidth="93.0" text="add Image" AnchorPane.leftAnchor="487.0" AnchorPane.rightAnchor="20.0" AnchorPane.topAnchor="158.0" />
 <ListView fx:id="lvEnglishWords" layoutX="316.0" layoutY="200.0" prefHeight="200.0" prefWidth="200.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="280.0" AnchorPane.rightAnchor="40.0" AnchorPane.topAnchor="200.0" />
 <ListView layoutX="400.0" layoutY="200.0" prefHeight="200.0" prefWidth="200.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="560.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="200.0" />
 </children>
</AnchorPane>

共 (0) 个答案