当旋钮的图像上有鼠标时,我需要将图像放在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 );
}
}
以上代码无效。请告诉我该怎么做。
由于 乔蒂
答案 0 :(得分:1)
鉴于您似乎没有接受答案,并且鉴于您还没有再次发布SSCCE,我不会花太多时间猜测您在做什么。
我唯一的建议是您需要在更改图片后使用slider.repaint()
。此外,你不应该每次都阅读图像。图像应该被缓存。