swing滑动条

 

这两张图片是程序里用到的图片

---------------------------------------------------------------------

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值