我有一个面板,其中有JScrollPane
和JButton
。我想知道当我按下按钮时如何将滚动窗格的垂直滚动条设置为底部。
我尝试过代码: -
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
writeClient();
jScrollPane2.getVerticalScrollBar().setValue(jScrollPane2.getVerticalScrollBar().getMaximum());
}
但它并没有导致极端的底部 - 底部还留有一点空间。
答案 0 :(得分:0)
我有问题重现你的问题。如果您可以发布所有相关代码(可能还包括屏幕截图),我们可以为您提供更好的建议。当我运行下面的代码时,按下按钮会将滚动窗格一直向下移动:
public class ScrollPaneBottom {
public static void main(final String[] args) {
new ScrollPaneBottom().test();
}
private void test() {
final JFrame frame = new JFrame("Move a scroll pane to the bottom");
frame.setBounds(100, 100, 800, 110);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
final String[][] data = {{"One", "Hello"}, {"Une", "Bonjour"},
{"Ein", "Hallo"}, {"Uno", "Hola"}, {"Een", "Hallo"}};
final String[] columnNames = {"Number", "Word"};
final JTable table = new JTable(new DefaultTableModel(data, columnNames));
final JScrollPane scrollPane = new JScrollPane(table);
final JButton button = new JButton("Move to the bottom");
button.addActionListener(e -> {
final int maximum = scrollPane.getVerticalScrollBar().getMaximum();
scrollPane.getVerticalScrollBar().setValue(maximum);
});
frame.getContentPane().setLayout(new BorderLayout());
frame.getContentPane().add(scrollPane, BorderLayout.CENTER);
frame.getContentPane().add(button, BorderLayout.SOUTH);
frame.setVisible(true);
}
}