0

マウスがノブの画像の上にあるときに、jslider のノブの画像の上に画像を配置する必要があります。

私はこのようなことをしました.:

  slider = new Slider();

  s= new mySliderUI(slider ,"slider.png" );

  slider.setUI(s); 
  slider.addMouseListener(new MyMouseAction());



public class MyMouseAction implements MouseListener{
    public void mouseEntered(MouseEvent e) {
                            try {
                    s.knobImage = ImageIO.read(new File("slider_roll.png"));
                } catch (IOException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                } 

        }

        public void mouseExited(MouseEvent e) {
                            try {
                    s.knobImage = ImageIO.read( new File("slider.png"));
                } catch (IOException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                } 

        }

}

private class mySliderUI extends BasicSliderUI { 

        Image knobImage; 


        public mySliderUI( JSlider aSlider, String fileName ) { 

            super( aSlider ); 

            aSlider.setPaintTrack(false);
            aSlider.setBorder(null);
            try { 
                this.knobImage = ImageIO.read( new File(fileName) ); 

            } catch ( IOException e ) { 

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

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

        } 

    } 

上記のコードは機能しません。どうすればこれができるか教えてください。

ありがとうジョティ

4

1 に答える 1

1

あなたが回答を受け入れていないようで、SSCCEをまだ投稿していないことを考えると、あなたが何をしているのかを推測するのに多くの時間を費やすつもりはありません。

slider.repaint()私が持っている唯一の提案は、画像を変更した後に使用する必要があるということです. また、毎回画像を読むべきではありません。画像をキャッシュする必要があります。

于 2010-10-28T14:55:19.177 に答える