3

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

1 に答える 1

0

しかし、JSlider が 1 つの位置を移動するたびに、移動した位置ごとに JDialog ボックスが表示されます。20 回移動すると、JDialog が 20 回取得されます。これを一度しか表示されないようにするにはどうすればよいですか?

目的の動作を得るために、イベントの調整を無視しようとする場合があります。

  public void stateChanged(ChangeEvent e) {
    JSlider source = (JSlider)e.getSource();
    if (!source.getValueIsAdjusting()) {
      // your code
    }
  }
于 2012-11-26T10:30:50.980 に答える