java - 如何在调整自定义 JSlider 大小时重新绘制

标签 java resize widget jcomponent jslider

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

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

谢谢。

最佳答案

您可以添加 ComponentListener到您的 slider ,在 componentResized 上重新绘制它。

slider.addComponentListener(new ComponentAdapter() {
    @Override
    public void componentResized(ComponentEvent e) {
        e.getComponent().repaint();
    }
}

关于java - 如何在调整自定义 JSlider 大小时重新绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13333631/

相关文章:

python - 为什么我的 wxPython 小部件的格式会出现问题?

java - 如何检索存储在映射值中的对象?

java - 我如何让我的答案看起来像 [z1, z2 ...]

java - 如何按特定顺序运行 Maven 测试?

html - 浏览器调整大小时内容移动

python - 在 Django 中上传时调整两个图像的大小

c++ - 通过代码添加具有可编辑属性的小部件

java - Tomcat 7 + Jersey + Eclipse

jquery - 随着浏览器高度的变化调整水平布局中的图像大小

javascript - 如何获取使用我的具有 iframe 的网络小部件的网站的统计信息?