这两张图片是程序里用到的图片
---------------------------------------------------------------------
public class VolumeSlider extends JPanel{
private static int width = 300;
private static int height = 100;
private static JSlider slider ;
private static JPanel contentPane ;
private static JLabel label ;
public VolumeSlider(){
init();
}
public VolumeSlider(JPanel panel){
init();
panel.add(contentPane);
}
private void init() {
slider = new JSlider(0,100,0);
contentPane = new JPanel();
contentPane.setSize(280, 50);
contentPane.setOpaque(false);
contentPane.setLayout(null);
contentPane.setLocation(535, 345);
slider.setBounds(0, 0,200, 50);
slider.setUI(new VolumeSliderUI());
slider.setMajorTickSpacing(20);
slider.setMinorTickSpacing(5);
slider.setForeground(Color.white);
slider.setOpaque(false);
label = new JLabel("音量:"+slider.getValue()+"%");
label.setForeground(Color.white);
label.setOpaque(false);
label.setBounds(210, 10, 100, 25);
contentPane.add(slider);
contentPane.add(label);
slider.addChangeListener(new ChangeListener(){
@Override
public void stateChanged(ChangeEvent e) {
if((JSlider)e.getSource()==slider){
label.setText("音量:"+slider.getValue()+"%");
}
}
});
}
// public static void main(String[] args) {
// new VolumeSlider();
// JFrame frame = new JFrame();
// frame.setSize(width, height);
// frame.getContentPane().add(contentPane);
// frame.setVisible(true);
// frame.setLocation(200, 80);
// frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// }
}
--------------------------------------------分割线 下面是另一个类----------------------------------------------------------
public class VolumeSliderUI extends MetalSliderUI {
/** */
/**
* 绘制指示物
*/
public void paintThumb(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
// 也可以帖图(利用鼠标事件转换image即可体现不同状态)
g2d.drawImage(new ImageIcon("images/media/volumesliderbar.png")
.getImage(), thumbRect.x, thumbRect.y, thumbRect.width, 20,
null);
}
/** */
/**
* 绘制刻度轨迹
*/
public void paintTrack(Graphics g) {
Rectangle trackBounds = trackRect;
if (slider.getOrientation() == JSlider.HORIZONTAL) {
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g2.drawImage(new ImageIcon("images/media/volumeprogressbar.png")
.getImage(), 0, 20, 200, 11, null);
} else {
super.paintTrack(g);
}
}
}