0

我正在尝试用java制作一个播放器。

已使用 jprogressbar 制作了一个搜索栏,如Andrew Thompson 的回答中的此链接所示,

我已经能够添加一个 mouselistener 并检测对 jprogressbar 的点击,但是如何获得我将寻找我的 bar 的 jprogressbar 的选定值?

我试过了,

progressBar.addMouseListener(new MouseAdapter() {            
    public void mouseClicked(MouseEvent e) {
           int v = progressBar.getSelectedValue();
       jlabel.setText("----"+v);
      }                                     
});

但没有像我预期的那样工作,甚至在互联网上找不到任何东西。

请帮我。感谢您的时间和精力,非常感谢。

4

1 回答 1

3

您可能必须仅根据鼠标单击坐标计算 JProgressBar 上的位置。你可以这样做:

progressBar.addMouseListener(new MouseAdapter() {            
    public void mouseClicked(MouseEvent e) {
       int v = progressBar.getValue();
       jlabel.setText("----"+v);

       //Retrieves the mouse position relative to the component origin.
       int mouseX = e.getX();

       //Computes how far along the mouse is relative to the component width then multiply it by the progress bar's maximum value.
       int progressBarVal = (int)Math.round(((double)mouseX / (double)progressBar.getWidth()) * progressBar.getMaximum());

       progressBar.setValue(progressBarVal);
  }                                     
});
于 2013-08-09T12:51:20.240 回答