Я ищу компонент Swing
, который сочетает в себе внешний вид JList
и функции «вверх-вниз», предоставляемые JSpinner
, который также реагирует на прокрутку. Кто-нибудь знает что-то вроде этого, а если нет, как я могу создать свой собственный компонент Swing
? Мне это нужно для игры, я пытаюсь сделать ...Есть ли у Java что-то вроде компонента JRoulette?
0
A
ответ
0
Вы можете работать вокруг него, как это:
JList<String> list = new JList<String>(new String[]{"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"});
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setLayout(new BorderLayout());
list.setSelectedIndex(0);
JScrollPane scrollpane = new JScrollPane(list);
scrollpane.setPreferredSize(new Dimension(200, 20));
scrollpane.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() {
@Override
public void adjustmentValueChanged(AdjustmentEvent e)
{
float pos = scrollpane.getVerticalScrollBar().getValue()/(float) scrollpane.getVerticalScrollBar().getMaximum();
int rpos = (int) (pos * list.getModel().getSize());
list.setSelectedIndex(rpos);
}
});
JPanel containerPanel = new JPanel();
containerPanel.setLayout(new FlowLayout());
containerPanel.setPreferredSize(new Dimension(200, 20));
containerPanel.add(scrollpane);
Сначала вы создаете JList, то поместите его в JScrollPane, а затем вам добавьте прослушиватель настройки, чтобы выбрать только видимый элемент.
Это немного Hacky, но это работает. – 493msi
Полагаю, я попробую это. Большое спасибо, добрый незнакомец! – ArcIX