سؤال

أحتاج إلى تخصيص مظهر وشعور JSlider في الأرجوحة في Java. لدي صورة من مقبض JSlider. أحتاج إلى وضع صورة المقبض هذه على مقبض JSLider الذي استخدمناه لتحديد قيمة من النطاق المحدد. لا أريد استخدام صورة المقبض الافتراضية لـ JSLIDER. بدلاً من ذلك ، أريد أن أضع صورة مقبض بلدي فوقها.

الرجاء مساعدتي كيف يمكنني فعل هذا؟

شكرا جيوتي

هل كانت مفيدة؟

المحلول

آسف ، نهج خاطئ. جرب شيئًا كهذا:

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 );

        }

    }

}

نصائح أخرى

الفئة الفرعية JSLIDER ، تجاوز "PaintComponent ()" وقم بإجراء مكالمة لتنفيذ Super ثم ارسم صورتك في المكان المناسب.

تحية للجميع،

شكرا جزيلا على الردود. حصلت على الحل لسؤالي. انه بسيط جدا.

لقد فعلت شيئًا كهذا:

Icon icon = new ImageIcon("slider.png");
        UIDefaults defaults = UIManager.getDefaults();
        defaults.put("Slider.horizontalThumbIcon", icon);

شكرا جيوتي

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top