每当我移动我的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());
}
答案 0 :(得分:0)
但是每当JSlider移动一个位置时,它就会生成JDialog框 显示每个已移动的位置。如果你移动它20次,你 得到JDialog 20次。我该如何解决这个问题才会出现 一次?
您可以尝试忽略调整事件,以获得所需的行为。
public void stateChanged(ChangeEvent e) {
JSlider source = (JSlider)e.getSource();
if (!source.getValueIsAdjusting()) {
// your code
}
}