2016-11-20 75 views
0

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

回答

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內,然後你添加調整偵聽器以選擇唯一可見的元素。

Showcase

+0

這是有點hacky,但它的工作原理。 – 493msi

+0

我想我會試試這個。非常感謝,親切的陌生人! – ArcIX

相關問題