这个地方应该添加的是listScrollPane而不是list
list.setSelectedIndex(int) 索引定位
list.setSelectedValue(obj, boolean)//值定位
import java.awt.Pointimport javax.swing.JFrame
import javax.swing.JList
import javax.swing.JScrollBar
import javax.swing.JScrollPane
public class $ extends JFrame{
public static void main(String[] args) {
$ $ = new $()
$.setLayout(null)
$.setSize(800, 600)
$.setVisible(true)
$.setResizable(false)
$.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
JList list = new JList()
list.setListData(new String[]{"1", "2" ,"3", "3" ,"5","1", "2" ,"3", "3" ,"6"})
JScrollPane jScrollPane = new JScrollPane(list)
jScrollPane.setSize(100, 100)
//list.setSelectedValue("5", true) //多个值相同时会导致无响应
//索引
int index = 9
list.setSelectedIndex(index)
Point p = list.indexToLocation(index)
JScrollBar jScrollBar = jScrollPane.getVerticalScrollBar()//获得垂直滚动条
jScrollBar.setValue(p.y)//设置垂直滚动条位置
$.add(jScrollPane)
}
}
import javax.swing.*import java.awt.*
public class Frame1 extends JFrame {
JScrollPane jScrollPane1 = new JScrollPane()
JList jList1 = new JList()
public Frame1() {
try {
jbInit()
}
catch(Exception e) {
e.printStackTrace()
}
}
private void jbInit() throws Exception {
this.setLocale(java.util.Locale.getDefault())
this.getContentPane().setLayout(null)
jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER)
jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS)
jScrollPane1.setBounds(new Rectangle(141, 62, 89, 132))
this.getContentPane().add(jScrollPane1, null)
jScrollPane1.getViewport().add(jList1, null)
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)