gpt4 book ai didi

java - 如何检测 Java Swing 滚动条何时位于或靠近滚动条底部?

转载 作者:太空宇宙 更新时间:2023-11-04 09:52:01 25 4
gpt4 key购买 nike

我正在开发一个需要内置电子表格的程序。我使用 JTable 作为电子表格,并将其包含在可滚动窗口中,但电子表格通常是无限的,我能想到的唯一方法是当用户滚动到电子表格底部(或接近底部)时,它会添加大约 20 个新行。我该如何去做呢?

最佳答案

您可以通过向滚动条添加 AdjustmentListener 来实现此目的。看看下面的演示。

import javax.swing.*;
import java.awt.event.*;

public class ScrollPaneEvents
{
private static final float THRESHOLD = 0.9f;

public static void main(String[] args)
{
JTextArea textArea = new JTextArea("A\nB\nC\nD\nE\nF\nG\nH\nI\nJ\nK\nL\nM\nN\nO\nP\nQ\nR\nS\nT\nU\nV\nW\nX\nY\nZ\n");
JScrollPane scrollPane = new JScrollPane(textArea);

scrollPane.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener()
{
@Override
public void adjustmentValueChanged(AdjustmentEvent e)
{
int maxValue = scrollPane.getVerticalScrollBar().getMaximum() - scrollPane.getVerticalScrollBar().getVisibleAmount();
int currentValue = scrollPane.getVerticalScrollBar().getValue();
float fraction = (float) currentValue / (float) maxValue;

if (fraction > THRESHOLD)
{
System.out.println("Scroll bar is near the bottom");
}
}
});

JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(scrollPane);
frame.setBounds(300, 200, 400, 300);
frame.setVisible(true);
}
}

关于java - 如何检测 Java Swing 滚动条何时位于或靠近滚动条底部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54614126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com