1

简单的Java问题在这里。我制作了一个自定义 JSlider,它在用户将滑块移动到的最后一个位置绘制正方形。我们覆盖paintcomponent并绘制相对于滑块大小的正方形。正确使用滑块时一切正常。但是,当您调整框架大小时会出现问题。滑块变大,滑块调节器随之移动,但我们放置的方块不会相对于滑块移动。当我们调整框架大小时,我们应该使用 JSlider 中的哪个函数来重新绘制?

我试图将 JSlider 代码与框架代码分开,因此我们希望用户能够使用我们的自定义 JSlider,而不是试图自己处理这个调整大小的功能。关于我们应该使用哪种方法的任何帮助?

谢谢。

4

1 回答 1

1

您可以将ComponentListener添加到重新绘制它的滑块上componentResized

slider.addComponentListener(new ComponentAdapter() {
    @Override
    public void componentResized(ComponentEvent e) {
        e.getComponent().repaint();
    }
}
于 2012-11-11T17:52:47.037 回答