Ich versuche, die ausgewählte ID meiner JComboBox
mit Abteilungs-Klasse als Referenz, die eine ID zurückgeben. Aber wenn ich versuche, das in eine andere Klasse zurückzugeben und sie zu benutzen. Es druckt nur den ersten Index und hört nicht auf meine Aktion, die ich innerhalb der JComboBox durchgeführt habe.Übergabe der ausgewählten ID an eine andere Klasse
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);
}
}
Wie Sie nur oben print()
Methode sehen kann sogar den ersten Index bekommt obwohl ich die JComboBox
mit ActionListener
irgendwelche Gründe, warum registrieren? :)
Geben Sie eine [mcve] ein. Ein MCVE würde Importe haben, nur eine ** public ** -Klasse (andere Klassen eingefügt, nachdem es in Ordnung ist), eine 'main (String [])' -Methode, um alles auszuführen, sobald es sauber kompiliert wird, ohne irgendwelche Änderungen. –