-1
私はJComboBox
の選択されたIDをDepartmentクラスを使ってidを返す参照として返そうとしています。しかし、私はこれを別のクラスに戻して使用しようとしています。最初のインデックスだけを表示して、JComboBox内で実行した自分のActionをリッスンしません。選択したIDを別のクラスに渡す
public class Frame extends JInternalFrame
{
JComboBox cbDepartment;
public Frame()
{
super("Frame",true,true,true,true);
addToPane(getContentPane());
setVisible(true);
pack();
}
private void addToPane(final Container pane)
{
JPanel panel = new JPanel();
pane.add(panel);
cbDepartment.setActionCommand("Department");
cbDepartment.addActionListener(listener);
panel.add(cbDepartment);
}
ActionListener listener = new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
if("Department".equals(e.getActionCommand()))
{
Department item = (Department) cbDepartment.getSelectedItem();
int departmentId = item.getId();
System.out.println("Your id is " +departmentId);
}
}
}
//RETURNING FOR ABLE TO USE IN ANOTHER CLASS
public int getSelectedItem()
{
Department item = (Department) cbDepartment.getSelectedItem();
return item.getId();
}
}
public class Model
{
Frame theView;
public class Model(Frame theView)
{
this.theView = theView;
print();
}
public void print()
{
int id = theView.getSelectedItem();
System.out.println(id);
}
}
私はActionListener
いかなる理由でJComboBox
を登録するにもかかわらず、あなただけの最初のインデックスを取得しますprint()
法上見ることができるように? :)コンボボックス上
投稿する[mcve]。 MCVEにはimport、唯一のpublic **クラス(他のクラスはうまく貼り付けられます)、変更なしできちんとコンパイルされた後にすべてを実行するmain(String [])メソッドがあります。 –