0

誰かが私が間違っていることを教えてもらえますか?

私は持っています..

    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()にブレークポイントが配置され、comboxが変更されると、ブレークポイントがヒットしますが、カードレイアウトは影響を受けません。

4

1 に答える 1

2

http://docs.oracle.com/javase/tutorial/uiswing/layout/card.htmlをご覧ください。

コンボボックスに表示されているのと同じ名前のパネルをカードレイアウトに追加していることを確認してください。名前が一致していない可能性があります。

于 2011-12-22T16:23:31.977 に答える