@Pieter-Knelissen
It is possible to use the following functions to scroll to the desired item.
"setValue ", "mouseWheel"
Also you can dump the complete List into a variable and access it.
For example as follows:
**sample test case : **
# -*- coding: utf-8 -*-
import names
def main():
startApplication("run.bat")
# Use "setValue" and "mouseWheel" functions to scroll
mouseClick(waitForObjectItem(names.defaultListModel_Example_JList, "Banana"), 75, 14, 0, Button.Button1)
mouseClick(waitForObjectItem(names.defaultListModel_Example_JList, "Pineapple"), 77, 3, 0, Button.Button1)
setValue(waitForObject(names.defaultListModel_Example_JScrollBar), 504) # setValue -> https://doc.qt.io/squish/java-setvalue-function.html
setValue(waitForObject(names.defaultListModel_Example_JScrollBar), 378) # setValue -> https://doc.qt.io/squish/java-setvalue-function.html
setValue(waitForObject(names.defaultListModel_Example_JScrollBar), 630) # setValue -> https://doc.qt.io/squish/java-setvalue-function.html
setValue(waitForObject(names.defaultListModel_Example_JScrollBar), 74) # setValue -> https://doc.qt.io/squish/java-setvalue-function.html
mouseClick(waitForObjectItem(names.defaultListModel_Example_JList, "Raspberry"), 241, 5, 0, Button.Button1)
setValue(waitForObject(names.defaultListModel_Example_JScrollBar), 189) # setValue -> https://doc.qt.io/squish/java-setvalue-function.html
mouseClick(waitForObjectItem(names.defaultListModel_Example_JList, "Nectarine"), 190, 7, 0, Button.Button1)
j = 1
for i in range(0, 25):
j = (j * -1)
mouseWheel((i * j)) # mouseWheel -> https://doc.qt.io/squish/java-mousewheel-function.html
snooze(1)
# Dump the complete List into a variable and access it.
tmpObj = waitForObject(names.defaultListModel_Example_JList)
tmpList = tmpObj.parent.view.getModel()
tmpSize = tmpList.size
for i in range(0, tmpSize):
tmpItem = tmpList.get(i)
test.log(f"{i} {tmpItem}")
test.breakpoint()
**sample application : **
// Example: Basic Usage
import javax.swing.*;
import java.awt.*;
public class ListExample {
public static void main(String[] args) {
JFrame frame = new JFrame("DefaultListModel Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
// 1. Create the model
DefaultListModel<String> listModel = new DefaultListModel<>();
// 2. Add data to the model
listModel.addElement("Apple");
listModel.addElement("Banana");
listModel.add(1, "Orange"); // Insert Orange at index 1
listModel.addElement("Mango");
listModel.addElement("Pineapple");
listModel.addElement("Grapes");
listModel.addElement("Strawberry");
listModel.addElement("Blueberry");
listModel.addElement("Raspberry");
listModel.addElement("Blackberry");
listModel.addElement("Cherry");
listModel.addElement("Peach");
listModel.addElement("Plum");
listModel.addElement("Apricot");
listModel.addElement("Nectarine");
listModel.addElement("Kiwi");
listModel.addElement("Papaya");
listModel.addElement("Guava");
listModel.addElement("Lychee");
listModel.addElement("Dragon fruit");
listModel.addElement("Passion fruit");
listModel.addElement("Pomegranate");
listModel.addElement("Watermelon");
listModel.addElement("Cantaloupe");
listModel.addElement("Honeydew melon");
listModel.addElement("Coconut");
listModel.addElement("Fig");
listModel.addElement("Date");
listModel.addElement("Persimmon");
listModel.addElement("Cranberry");
listModel.addElement("Mulberry");
listModel.addElement("Gooseberry");
listModel.addElement("Starfruit (Carambola)");
listModel.addElement("Jackfruit");
listModel.addElement("Durian");
listModel.addElement("Tamarind");
listModel.addElement("Olive");
listModel.addElement("Avocado");
listModel.addElement("Lemon");
listModel.addElement("Lime");
listModel.addElement("Grapefruit");
listModel.addElement("Tangerine");
listModel.addElement("Clementine");
listModel.addElement("Soursop");
listModel.addElement("Sapodilla");
listModel.addElement("Rambutan");
listModel.addElement("Longan");
listModel.addElement("Mangosteen");
listModel.addElement("Breadfruit");
listModel.addElement("Custard apple");
// 3. Create JList with the model
JList<String> fruitList = new JList<>(listModel);
fruitList.setFont(new Font("Arial", Font.PLAIN, 16));
// Add list to a scroll pane for better viewing
JScrollPane scrollPane = new JScrollPane(fruitList);
frame.add(scrollPane, BorderLayout.CENTER);
frame.setVisible(true);
}
}