java swing中jList滚动条位置问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java swing中jList滚动条位置问题相关的知识,希望对你有一定的参考价值。
list.setSelectedIndex(int); 索引定位
list.setSelectedValue(obj, boolean);//值定位
import java.awt.Point;
import 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);
final JLabel last = new JLabel("I'm the last");
int maxRow = 20;
int maxColumn = 10;
JComponent content = new JPanel(new GridLayout(maxRow, maxColumn));
for (int row = 0; row < maxRow; row++)
for (int column = 0; column < maxColumn; column++)
JComponent parent = new JPanel();
JLabel label = new JLabel("i'm in " + row + "/" + column);
if (row == (maxRow - 1) && column == (maxColumn - 1))
label = last;
last.setBorder(BorderFactory.createLineBorder(Color.RED));
parent.add(label);
content.add(parent);
JXFrame frame = wrapWithScrollingInFrame(content, "scroll");
Action action = new AbstractAction("scrollLastVisible")
@Override
public void actionPerformed(ActionEvent e)
last.scrollRectToVisible(last.getBounds());
;
addAction(frame, action);
show(frame, frame.getPreferredSize().width / 2, frame.getPreferredSize().height / 2);
以上是关于java swing中jList滚动条位置问题的主要内容,如果未能解决你的问题,请参考以下文章
用java做了个多人聊天室,显示内容用的JList和JSCrollPane,我想让滚动面板的滚动条
java GUI编程(swing)之四swing下拉框,列表框,滚动窗口
java swing编程问题:一个jframe中添加一个jpanel后,为jpanel添加一个滚动条,当jpanel中内容过多时滑动
java swing JPanel添加在JScrollPane上,有垂直的滚动条,可是滚动条拉到底,只显示了JPanel的一部分。