我有這個自定義代碼的JList使用ActionMapAction。現在我可以使用自定義向上和向下箭頭buttom但我不能使用鼠標的滾動在jLIST上上下滾動。在沒有滾動條的JList上滾動
我該如何實現滾動鼠標滾動上下滾動JList?
jlist.setFont(new Font("Calibri",Font.BOLD,16));
jlist.setCellRenderer(new Renderer());
jlist.setFixedCellWidth(100);
jlist.setBorder(new EmptyBorder(10,10, 10, 10));
jlist.addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent arg0) {
}
public void mouseEntered(MouseEvent arg0) {
}
public void mouseExited(MouseEvent arg0) {
}
public void mousePressed(MouseEvent e) {
JList<String> jl = (JList<String>)e.getSource();
if(e.getClickCount() == 2){
jlist.setCellRenderer(new Renderer(true));
int index = jl.locationToIndex(e.getPoint());
new OneToOneChat(jlist.getModel().getElementAt(index).toString());
System.out.print(index);
}
}
public void mouseReleased(MouseEvent e) {
jlist.setCellRenderer(new Renderer(false));
}
});
jsp = new JScrollPane(jlist);
jsp.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
JScrollBar customScroll = jsp.getVerticalScrollBar();
add(jsp);
BasicArrowButton top = new BasicArrowButton(BasicArrowButton.TOP);
top.setAction(new ActionMapAction("", customScroll, "negativeUnitIncrement"));
add(top,BorderLayout.NORTH);
BasicArrowButton bottom = new BasicArrowButton(BasicArrowButton.SOUTH);
bottom.setAction(new ActionMapAction("", customScroll, "positiveUnitIncrement"));
add(bottom,BorderLayout.SOUTH);
}
也許使用[keyBinds](http://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding .html)而不是ActionMapAction來檢測箭頭被按下的時間,它不會弄亂滾動? –