首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在java中把图片放到jslilder的swing旋钮上?

如何在java中把图片放到jslilder的swing旋钮上?
EN

Stack Overflow用户
提问于 2010-10-26 11:56:52
回答 3查看 3.6K关注 0票数 1

我需要在java的swing中自定义jslider的外观和感觉。我有一个jslider旋钮的图像。我需要把这个旋钮的图像放在jslider的旋钮上,我们用它从给定的范围中选择一个值。我不想使用默认的jslider旋钮图像。相反,我想把我自己的旋钮的图像放在上面。

请帮帮我,我该怎么做呢?

谢谢Jyoti

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-28 10:37:53

抱歉,这是错误的方法。尝试如下所示:

代码语言:javascript
运行
复制
package java_sandbox;

import javax.imageio.ImageIO;
import javax.swing.JSlider;
import javax.swing.SwingUtilities;
import javax.swing.JFrame;
import javax.swing.plaf.basic.BasicSliderUI;

import java.awt.*;

import java.io.File;
import java.io.IOException;


public class CustomSliderKnob {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new CustomSliderKnob(); 
            }
        });
    }

    public CustomSliderKnob() {

        JFrame f = new JFrame( "Swing Slider Knob" );
        f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); 


        Container p = f.getContentPane();
        JSlider s = new JSlider();

        s.setUI( new mySliderUI( s ) );

        p.add( s );

        f.pack();
        f.setVisible(true);
    } 

    private class mySliderUI extends BasicSliderUI {

        Image knobImage;

        public mySliderUI( JSlider aSlider ) {

            super( aSlider );

            try {
                this.knobImage = ImageIO.read( new File( "d:\\d.jpg") );

            } catch ( IOException e ) {

                e.printStackTrace();
            }
        }
        public void paintThumb(Graphics g)  {        

            g.drawImage( this.knobImage, thumbRect.x, thumbRect.y, 8, 8, null );

        }

    }

}
票数 2
EN

Stack Overflow用户

发布于 2010-10-26 12:02:18

子类JSlider,重写'paintComponent()‘并调用超级的实现,然后在适当的地方绘制你的图像。

票数 2
EN

Stack Overflow用户

发布于 2010-10-28 14:44:38

大家好,

非常感谢你的回复。我找到了我的问题的答案。这很简单。

我做过这样的事情:

代码语言:javascript
运行
复制
Icon icon = new ImageIcon("slider.png");
        UIDefaults defaults = UIManager.getDefaults();
        defaults.put("Slider.horizontalThumbIcon", icon);

谢谢Jyoti

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4020591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档