JScrollPane.根据我的应用程序中发生的事件,我在运行时将一个位于行内的JTable 添加到表中.我想让一个新的行添加到表格时,scoll窗格滚动到表格的底部.
对于JLists有[ensureIndexIsVisible][1]()强制列表中的特定索引可见.我正在寻找相同的东西,但对于JTable.看起来我可能不得不手动移动滚动窗格上的滚动视图,但我认为必须有一个更简单的方法.
当我打电话时JTable#scrollRectToVisible,我想要显示的行在某些情况下隐藏在标题下方.
这个问题的其余部分仅在使用以下代码时才有意义.这是一个非常简单的程序,我用它来说明问题.它显示了一个UI JSplitPane,其上部包含一些控制按钮,下部包含一个JTable包裹在a中的JScrollPane(参见本文底部的屏幕截图).
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
public class DividerTest {
private final JSplitPane fSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
private final JTable fTable;
private final JScrollPane fScrollPane;
private boolean fHideTable = false;
public DividerTest() {
fTable = new JTable( createTableModel(50));
fScrollPane = new JScrollPane(fTable);
fSplitPane.setBottomComponent(fScrollPane);
fSplitPane.setTopComponent(createControlsPanel());
fSplitPane.setDividerLocation(0.5);
}
private JPanel createControlsPanel(){
JPanel result = new JPanel();
result.setLayout(new BoxLayout(result, BoxLayout.PAGE_AXIS));
final JCheckBox checkBox …Run Code Online (Sandbox Code Playgroud)