それらは実際には2 つの質問です。
最初の質問: JScrollBarとAdjustmentEventの違いは何getValueIsAdjusting()
ですか
違いがあるかどうかをテストするためにいくつかのコードでそれらを試しましたが、何も得られませんでした!. これは、私がそれらをどのようにテストしたかを示すコードです。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ScrollTest extends JPanel
{
JPanel panel;
JScrollBar scroll;
public ScrollTest()
{
scroll = new JScrollBar(JScrollBar.HORIZONTAL, 0, 6, 0, 300);
scroll.addAdjustmentListener(ScrollListener);
panel = new JPanel(new GridLayout(1, 0));
panel.add(scroll);
this.setLayout(new BorderLayout());
this.add(panel);
}
AdjustmentListener ScrollListener = new AdjustmentListener()
{
@Override
public void adjustmentValueChanged(AdjustmentEvent e)
{
if(e.getValueIsAdjusting())
{
System.out.println("AdjustmentEvent");
}
if(scroll.getValueIsAdjusting())
{
System.out.println("JScrollBar");
}
}
};
private static void createAndShowGUI()
{
JFrame frame;
frame = new JFrame("Scroll Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(880, 100);
frame.add(new ScrollTest(), BorderLayout.CENTER);
frame.setVisible(true);
}
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
UIManager.put("swing.boldMetal", Boolean.FALSE);
createAndShowGUI();
}
});
}
}
上記のコードは、「AdjustmentEvent」と「JScrollBar」の文字列を順番に出力します。それらの間に違いはないようです!
重要なポイントは、それぞれをいつ、何のために使用するかです。
2番目の質問:
JScrollBarボタンを聞くには? 上記のコードをテストすると、ノブを動かしたり、ストリップをクリックしたときに文字列が出力されますが、JScrollBar のボタンをクリックしたときには出力されません!