0
我在尋找一個Swing
組件,它結合了JList
的外觀和JSpinner
提供的上下功能,該功能也響應滾動。有誰知道這樣的事情,如果沒有,我該如何製作我自己的Swing
組件?我需要它的一個遊戲,我試圖讓...Java是否有類似JRoulette組件的東西?
我在尋找一個Swing
組件,它結合了JList
的外觀和JSpinner
提供的上下功能,該功能也響應滾動。有誰知道這樣的事情,如果沒有,我該如何製作我自己的Swing
組件?我需要它的一個遊戲,我試圖讓...Java是否有類似JRoulette組件的東西?
你可以解決它是這樣的:
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