Как мне указать, из какого класса вызывать метод? - PullRequest
0 голосов
/ 04 ноября 2011

Когда я запускаю приведенный ниже код, метод fireEvent() вызывается внутри класса Slider вместо класса ColorPanel.Как я могу заставить его вызывать метод fireEvent() в классе ColorPanel?(Они оба расширяют EventComponent, у которого есть метод)

public class ColorPanel extends EventComponent<ColorChangeListener> {

public ColorPanel() {
    ...
    add(new ValueSlider());
}

.................more Code

@Override
protected void fireEvent() {
    for (ColorChangeListener l : listeners)
        l.colorChanged(color);
}

private class ValueSlider extends Slider {
    public ValueSlider() {
        super(0, 200, 200, 200);
        this.x = 10;
        this.y = 220;
        addListener(new ValueChangeListener() {
            @Override
            public void valueChanged(int value) {
                colorCircle.setValue(value / 200f);
                color = colorCircle.getSelectedColor();
                fireEvent();
            }
        });
    }
}

Ответы [ 2 ]

2 голосов
/ 04 ноября 2011

Укажите компилятору правильный метод, изменив fireEvent(); на ColorPanel.this.fireEvent();

0 голосов
/ 04 ноября 2011

Вы должны указать класс следующим образом:

ColorPanel.this.fireEvent();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...