JComboBox klappt nicht auf

Status
Nicht offen für weitere Antworten.

ylvi

Mitglied
Hi!

Ich mit der Suchfunktion leider nichts gefunden. Vielleicht kann mir jemand helfen.
Ich hab einen einen JFrame mit einer Menuebar. Wenn ich in der Menuebar einen Menuepunkt auswähle, soll ein Popup aufgehen, auf dem ein JPanel dargestellt wird. Auf diesem Panel wiederum sollen eine JComboBox ein JTextField und zwei JButtons dargestellt werden.Wenn ich den Menuepunkt anklicke öffnet sich das Popup, die Componenten werden alle ordentlich angezeigt. Das Textfeld und die beiden Buttons funktionieren auch, aber die JComboBox läßt sich nicht aufklappen. Wenn ich auf den Pfeil klicke reagiert er zwar, aber die Auswahl klappt nicht auf. Es ist definitiv etwas drin in der Box. Wenn ich dem Popup nur die JCombobox zuweise funktioniert sie.

Was kann der Fehler sein?

[HIGHLIGHT="Java"]
public class Gui extends JFrame implements ActionListener,ItemListener {

private JTextField jt = new JTextField();
private JComboBox cb = new JComboBox();
private JLabel jl = new JLabel("Mannschaft");
private JLabel jl1 = new JLabel("Klasse");
private JButton jb = new JButton("OK");
private JButton jb1 = new JButton("Schließen");
private String sql = new String();
private String[][] result = null;
private JPanel panel = new JPanel();
private int anz = 0;
private JMenuBar mb = new JMenuBar();
private PopupFactory factory = null;
private Popup popup = null;
DB_Connect db = new DB_Connect();

public Gui(){

super();
menue();
this.setExtendedState(MAXIMIZED_BOTH);
this.setBackground(Color.DARK_GRAY);
this.setLayout(null);
this.setJMenuBar(mb);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
factory = PopupFactory.getSharedInstance();
this.setVisible(true);

}

public void neue_mannschaft() {

panel.setSize(500, 240);
panel.setLocation(400, 160);
panel.setLayout(null);
panel.setBorder(BorderFactory.createLineBorder(Color.black,2));
cb.setSize(210,30);
cb.setLocation(180, 30);
cb.addItemListener(this);
cb.addItem("(Klasse)");
sql = "Select count(kl_id) from klasse";
try {
anz = Integer.parseInt(db.select(sql)[0][0]);
} catch (NullPointerException e1) {
anz = 0;
}
System.out.println("ANZ:" + anz);
result = new String[anz][1];
sql = "select klasse from klasse";
result = db.select(sql);
for (int i = 0; i < anz; i++) {
cb.addItem(result[0]);
}
jt.setSize(210,30);
jt.setLocation(180, 90);
jb.setSize(90,30);
jb.setLocation(180, 150);
jb1.setSize(90,30);
jb1.setLocation(300, 150);
jb.setActionCommand("mannsch");
jb.addActionListener(this);
jb1.setActionCommand("close");
jb1.addActionListener(this);
jl.setSize(120, 30);
jl1.setSize(120, 30);
jl.setLocation(50, 30);
jl1.setLocation(50, 90);
jb.setActionCommand("mannsch");
panel.add(jl);
panel.add(jl1);
panel.add(cb);
panel.add(jt);
panel.add(jb);
panel.add(jb1);
panel.setVisible(true);
this.add(panel);
}

public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getActionCommand().equalsIgnoreCase("mannschaft")){
neue_mannschaft();
popup = factory.getPopup(this,panel, 300, 300);
popup.show();

}
}
[/HIGHLIGHT]

Vielen Dank im Vorraus

Gruß Ulf
 
So richtig kann ich es hier nicht nachvollziehen, da mir die menue()-Methode fehlt. Möglicherweise ist im Panel nicht genug Platz, um die Information darzustellen, weswegen er nicht aufklappt.

Vielleicht liegt es auch daran, dass du mit dem NULL-LayoutManager arbeitest, also alle Komponenten von Hand platzierst/Größe angibst, so dass da irgendwo ein Fehler ist. Versuch mal ein GridBagLayout mit 3 Spalten und 3 Zeilen.
 
Danke euch für eure Antworten. Ich hab das ganze jetzt anders gelöst, indem ich statt Popup JDialog benutze. Da funktioniert alles so wie ich es mir vorstelle!

Gruß Ulf
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben