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) 个答案