Новое в Java, панели не переключены в моей карточке - PullRequest
0 голосов
/ 22 декабря 2011

Может кто-нибудь сказать мне, что я делаю не так, пожалуйста?

У меня есть ..

    JComboBox comboBox = new JComboBox();

    comboBox.addItem("Factor 1");
    comboBox.addItem("Factor 2");
    comboBox.addItem("Factor 3");

    comboBox.setSelectedIndex(-1);

    studyPlanController.setFactors(comboBox);
    MyItemListener itemListener = new MyItemListener();

    comboBox.addItemListener(itemListener);
    itemListener.setFactors(cardFactors);

и ..

import java.awt.CardLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.JPanel;

public class MyItemListener implements ItemListener {
    JPanel factors;

    public void setFactors(JPanel factors) {
        this.factors = factors;
    }

    @Override
    public void itemStateChanged(ItemEvent e) {
        CardLayout cl = (CardLayout) (factors.getLayout());
        cl.show(factors, (String) e.getItem());
    }

}

Когда точка останова помещается в itemStateChanged (), и комбо-бокс изменяется, тогда достигается точка останова, однако расклад карты остается неизменным.

1 Ответ

2 голосов
/ 22 декабря 2011

Пожалуйста, посмотрите на http://docs.oracle.com/javase/tutorial/uiswing/layout/card.html

Пожалуйста, убедитесь, что вы добавляете панели к макету карты с тем же именем, которое отображается в выпадающем списке. В именах может быть несоответствие.

...