2013-01-18 86 views
0

我有一个包含用阿拉伯语写的项目的jlist,不幸的是,如果任何项目很长,加载后所有项目都会消失,因为滚动条不会自动滚动到右侧,我应该手动将列表从Horizo​​ntaly滚动到右侧。JList水平自动滚动到右边

我已经将JList的componentOrientation设置为正确。

有什么想法?

+2

我建议你创建一个最小的工作例子,张贴在这里。 –

回答

1

假设JList的是在JScrollPane中,你可以设置水平滚动条的值:

final int maximum = scrollPane.getHorizontalScrollBar().getMaximum(); 
scrollPane.getHorizontalScrollBar().setValue(maximum); 

也喜欢在这里的例子:

final JFrame frame = new JFrame("JList horizontal auto-scroll to right"); 
frame.setBounds(100, 100, 80, 600); 
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
final String[] model = {"aaa", "bbbb", "ccccccccccccccccccccccccc"}; 
final JList<String> jList = new JList<String>(model); 
jList.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); 
final JScrollPane scrollPane = new JScrollPane(jList); 
frame.getContentPane().add(scrollPane); 
final int maximum = scrollPane.getHorizontalScrollBar().getMaximum(); 
scrollPane.getHorizontalScrollBar().setValue(maximum); 
frame.setVisible(true); 

对于我来说,窗口的样子这个:

screenshot frame

+0

是的,JList位于JScrollPane中。甚至我添加了'setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);'jlist不会自动滚动到正确的位置。 – Adil

+0

是的,这很奇怪。也许是因为JScrollPane没有检查JList的组件方向?您的应用程序可能以编程方式滚动吗? –

+0

我认为'setComponentOrientation'与Scroller无关,因为它的主要作用是从右向左设置文本方向。关于你最后一个QT,这是我正在寻找的,滚动程序向右。 – Adil