每次我的JSlider移动时都会出现JDialog

时间:2012-11-20 17:15:56

标签: java swing exception jdialog jslider

每当我移动我的JSlider时,我的JDialog框出现在它移动的每个位置,我只希望它在用户试图移动JSlider时显示一次而没有他们从我的菜单中进行选择。我该怎么做?

public void stateChanged(ChangeEvent e)
{
  if(myFrame.shape == null)
  {

JOptionPane.showMessageDialog(popUp, "You should select an item first.", "Information",     JOptionPane.WARNING_MESSAGE);
  }
  else if(myFrame.shape != null)
  {
    DecimalFormat df = new DecimalFormat("0.0");
    float value = diameterJSlider.getValue();
    String strValue = Float.toString(value);
    sliderLabel.setText(strValue);
    boundaryTextField.setText("" + df.format(myFrame.shape.getBoundary(value)));
    areaTextField.setText("" + df.format(myFrame.shape.getArea(value)));

    myTopPanel.reDraw(diameterJSlider.getValue());
  }

1 个答案:

答案 0 :(得分:0)

  

但是每当JSlider移动一个位置时,它就会生成JDialog框   显示每个已移动的位置。如果你移动它20次,你   得到JDialog 20次。我该如何解决这个问题才会出现   一次?

您可以尝试忽略调整事件,以获得所需的行为。

  public void stateChanged(ChangeEvent e) {
    JSlider source = (JSlider)e.getSource();
    if (!source.getValueIsAdjusting()) {
      // your code
    }
  }