下面列出了javax.swing.JList#ensureIndexIsVisible ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private void moveFilter(JList fromList, JList toList, int selectedItem) {
Filter filter = (Filter) ((DefaultListModel) fromList.getModel()).getElementAt(selectedItem);
((DefaultListModel) fromList.getModel()).removeElementAt(selectedItem);
DefaultListModel dlm = ((DefaultListModel) toList.getModel());
dlm.ensureCapacity(dlm.getSize() + 1);
dlm.addElement(filter);
toList.ensureIndexIsVisible(dlm.getSize());
}
public StatusMessageDialog(List<StatusMessage> statusMessages, ImageInfoReader imageInfoReader, SoundIdReader soundIdReader, JFrame parentFrame) {
super(700, 475, imageInfoReader);
JScrollPane scrollPane = JScrollPaneFactory.createScrollPane();
scrollPane.setBounds(16, 16, 665, 380);
addComponent(scrollPane);
JList<StatusMessage> list = JListFactory.createJList(statusMessages.toArray(new StatusMessage[0]));
list.setSelectedIndex(statusMessages.size() - 1);
list.setCellRenderer(new StatusMessageListRenderer());
scrollPane.setViewportView(list);
list.ensureIndexIsVisible(list.getSelectedIndex());
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new BorderLayout());
buttonPane.setOpaque(false);
buttonPane.setBounds(16, 417, 665, 40);
addComponent(buttonPane);
JButton okButton = JButtonFactory.createButton(" OK ", imageInfoReader, soundIdReader);
okButton.setActionCommand("OK");
buttonPane.add(okButton, BorderLayout.EAST);
getRootPane().setDefaultButton(okButton);
addActions(list, okButton);
DialogUtils.createDialogBackPanel(this, parentFrame.getContentPane());
}
private void setResultClassSelectedValues(JList list, Object... values) {
list.clearSelection();
for (Object value : values) {
int index = getElementIndexInList(list.getModel(), value);
if (index >= 0) {
list.addSelectionInterval(index, index);
} else if (value instanceof String) { //if external lib class not exists then add
addAndSelectItemInList(list, value);
}
}
list.ensureIndexIsVisible(list.getSelectedIndex());
}