ChangeListener не стреляет - PullRequest
2 голосов
/ 22 марта 2012

Я узнаю о слушателях изменений и хотел бы выяснить, почему часть моего кода не вызывает срабатывания слушателей изменений, когда пользователь перемещает ползунок.

Вот слушатель.Все в том же методе:

ChangeListener lst = new ChangeListener() {
    public void stateChanged(ChangeEvent e) {
        showDate();
    }
};

Вот некоторый код, который добавляет слушателя:

m_slDay = new JSlider(JSlider.HORIZONTAL, 1, maxDays,
    m_calendar.get(Calendar.DAY_OF_MONTH));
m_slDay.setPaintLabels(true);
m_slDay.setMajorTickSpacing(5);
m_slDay.setMinorTickSpacing(1);
m_slDay.setPaintTicks(true);

// This line of code seems to work.  
m_slDay.addChangeListener(lst);

p = new JPanel();
p.setBorder(new TitledBorder(new EtchedBorder(), "Day"));
p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
p.add(Box.createRigidArea(RIGID_DIMENSION));
p.add(m_slDay);
p.add(Box.createRigidArea(RIGID_DIMENSION));
p1.add(p);

Этот код основан на приведенном выше фрагменте кода, но ничего не происходит, когда пользовательперемещает ползунок:

m_slDayOfWeek = new JSlider(JSlider.HORIZONTAL, 1, maxDaysOfTheWeek,
    m_calendar.get(Calendar.DAY_OF_WEEK));
m_slDayOfWeek.setPaintLabels(true);
m_slDayOfWeek.setMajorTickSpacing(1);
m_slDayOfWeek.setMinorTickSpacing(1);
m_slDayOfWeek.setPaintTicks(true);

// This one is not working and I'm not sure why it's happening.
m_slDayOfWeek.addChangeListener(lst);

p = new JPanel();
p.setBorder(new TitledBorder(new EtchedBorder(), "Day of Week"));
p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
p.add(Box.createRigidArea(RIGID_DIMENSION));
p.add(m_slDayOfWeek);
p.add(Box.createRigidArea(RIGID_DIMENSION));
p1.add(p);

1 Ответ

3 голосов
/ 22 марта 2012

Кажется, что в вашей части кода что-то не так, как указано в комментариях к вашему методу showDate(), эта вещь работает безупречно в этом коде:

...