ComboBox lässt sich nicht aufklappen

So nun hab ich die Lösung. Man muss die ScrollPane der der ContentPane des Frames hinzufügen und dann auch die Funktion setComponentZOrder auf der Content Pane ausführen

Java:
public class FormAnmeldung extends javax.swing.JFrame {
     // ==================== Steuerelement Deklaration START 
    // Frame
    private javax.swing.JFrame FrameAnmeldung;
    
    // PasswortField
    private javax.swing.JPasswordField PasswordFieldPasswort;
    
    // Panel
    private javax.swing.JPanel PanelBackgroundPanel;
    private javax.swing.JPanel PanelBildPanel;
    
    // TextField
    private javax.swing.JTextField TextFieldBenutzerName;
    
    // ComboBoxen
    private javax.swing.JComboBox ComboBoxAufloesung;
    private javax.swing.JComboBox ComboBoxSprache;
    
    // Labels
    private javax.swing.JLabel LabelMenue;
    private javax.swing.JLabel LabelBenutzerName;
    private javax.swing.JLabel LabelPasswort;
    private javax.swing.JLabel LabelAufloesung;
    private javax.swing.JLabel LabelSprache;
    
    // Buttons
    private javax.swing.JButton ButtonAnmeldung;
    private javax.swing.JButton ButtonSchliessen;
    
    // ScrollPane
    private javax.swing.JScrollPane scrollpane;
    // ===================== Steuerelement Deklaration END 
    
    // ====================== Variablen Deklaration START 
    private int height;
    private int width;
    private boolean anmelden;
    // ======================= Variablen Deklaration END 
    
    // ====================== Funktionen Definition START     
    // ======================= Funktionen Definition END 
    
    // ==================== Eventhandler Definition START 
    private void schliesseFensterActionPerformed() {                                           
        this.FrameAnmeldung.setVisible(false);
        this.FrameAnmeldung.dispose();        
    }
    // ===================== Eventhandler Definition END 
    
    
    
    public FormAnmeldung() {
        
        // ==================== Steuerelement Definition START 
        // erzeuge Frame
        this.FrameAnmeldung = new javax.swing.JFrame();
        this.FrameAnmeldung.setTitle("Anmeldung DB XYZ);
        this.FrameAnmeldung.setBounds(100,100,300,440);
        this.FrameAnmeldung.setDefaultCloseOperation(javax.swing.JFrame.DISPOSE_ON_CLOSE);
        this.FrameAnmeldung.setLayout(null);
        
        // erzeuge Scrollpane
        this.scrollpane = new javax.swing.JScrollPane(null);
        this.scrollpane.setBounds(0,0,300,440);
        
        
        //    W I C H T I G   
        this.FrameAnmeldung.getContentPane().add(this.scrollpane);
        this.FrameAnmeldung.getContentPane().setComponentZOrder(this.scrollpane,0);
        //    W I C H T I G   
        
        
        java.awt.Color PanelBackgroundColor = new java.awt.Color(175, 210, 248);
        
        //erzeuge Panel
        this.PanelBackgroundPanel = new javax.swing.JPanel();
        this.PanelBackgroundPanel.setBounds(0,0,296,420);
        this.PanelBackgroundPanel.setBackground(PanelBackgroundColor);
        this.PanelBackgroundPanel.setLayout(null);                
        scrollpane.add(this.PanelBackgroundPanel);
        scrollpane.setComponentZOrder(this.PanelBackgroundPanel,0);
        
        this.PanelBildPanel = new javax.swing.JPanel();
        this.PanelBildPanel.setBounds(10,180,270,180);
        this.PanelBildPanel.setBackground(new java.awt.Color(245,245,245));
        this.PanelBackgroundPanel.add(this.PanelBildPanel);
        this.PanelBackgroundPanel.setComponentZOrder(this.PanelBildPanel,0);
        
        
        // erzeuge Labels
        this.LabelMenue = new javax.swing.JLabel("Anmeldung an der XYZ Datenbank");
        this.LabelMenue.setBounds(35,5,250,20);
        this.PanelBackgroundPanel.add(this.LabelMenue);
        this.PanelBackgroundPanel.setComponentZOrder(this.LabelMenue,0);
        
        this.LabelBenutzerName = new javax.swing.JLabel("Benutzername");
        this.LabelBenutzerName.setBounds(10,50,90,20);
        this.PanelBackgroundPanel.add(this.LabelBenutzerName);
        this.PanelBackgroundPanel.setComponentZOrder(this.LabelBenutzerName,0);
        
        this.LabelPasswort = new javax.swing.JLabel("Passwort");
        this.LabelPasswort.setBounds(10,80,100,20);
        this.PanelBackgroundPanel.add(this.LabelPasswort);
        this.PanelBackgroundPanel.setComponentZOrder(this.LabelPasswort,0);
       
        this.LabelAufloesung = new javax.swing.JLabel("Auflösung");
        this.LabelAufloesung.setBounds(10,110,100,20);
        this.PanelBackgroundPanel.add(this.LabelAufloesung);
        this.PanelBackgroundPanel.setComponentZOrder(this.LabelAufloesung,0);
       
        this.LabelSprache = new javax.swing.JLabel("Sprache");
        this.LabelSprache.setBounds(10,140,100,20);
        this.PanelBackgroundPanel.add(this.LabelSprache);
        this.PanelBackgroundPanel.setComponentZOrder(this.LabelSprache,0);
        
        // erzeuge Textfield
        this.TextFieldBenutzerName = new javax.swing.JTextField();
        this.TextFieldBenutzerName.setBounds(110,50,170,20);
        this.TextFieldBenutzerName.setBackground(new java.awt.Color(245,245,245));
        this.PanelBackgroundPanel.add(this.TextFieldBenutzerName);
        this.PanelBackgroundPanel.setComponentZOrder(this.TextFieldBenutzerName,0);
        
        // erzeuge Passwort Textfield
        this.PasswordFieldPasswort = new javax.swing.JPasswordField();
        this.PasswordFieldPasswort.setBounds(110,80,170,20);
        this.PasswordFieldPasswort.setBackground(new java.awt.Color(245,245,245));
        this.PanelBackgroundPanel.add(this.PasswordFieldPasswort);
        this.PanelBackgroundPanel.setComponentZOrder(this.PasswordFieldPasswort,0);
        
        // erzeuge ComboBoxen        
        this.ComboBoxAufloesung = new javax.swing.JComboBox();
        this.ComboBoxAufloesung.setBounds(110,110,170,20);
        this.ComboBoxAufloesung.setBackground(new java.awt.Color(245,245,245));
        this.ComboBoxAufloesung.addItem("800 x 600");
        this.ComboBoxAufloesung.addItem("1024 x 768");
        this.ComboBoxAufloesung.addItem("1280 x 1024");
        this.PanelBackgroundPanel.add(this.ComboBoxAufloesung);
        this.PanelBackgroundPanel.setComponentZOrder(this.ComboBoxAufloesung,0);

       
        this.ComboBoxSprache = new javax.swing.JComboBox();
        this.ComboBoxSprache.setBounds(110,140,170,20);
        this.ComboBoxSprache.setBackground(new java.awt.Color(245,245,245));
        this.ComboBoxSprache.addItem("German");
        this.ComboBoxSprache.addItem("English");
        this.ComboBoxSprache.addItem("Netherlands");
        this.PanelBackgroundPanel.add(this.ComboBoxSprache);
        this.PanelBackgroundPanel.setComponentZOrder(this.ComboBoxSprache,0);

        
        // erzeuge Buttons
        this.ButtonAnmeldung = new javax.swing.JButton("Anmelden");
        this.ButtonAnmeldung.setBounds(10,380,100,20);
        this.PanelBackgroundPanel.add(this.ButtonAnmeldung);
        this.PanelBackgroundPanel.setComponentZOrder(this.ButtonAnmeldung,0);
        
        this.ButtonSchliessen = new javax.swing.JButton("Schließen");
        this.ButtonSchliessen.setBounds(180,380,100,20);
        this.PanelBackgroundPanel.add(this.ButtonSchliessen);
        this.PanelBackgroundPanel.setComponentZOrder(this.ButtonSchliessen,0);
        
        this.FrameAnmeldung.setVisible(true); 
        this.FrameAnmeldung.repaint();
        // ==================== Steuerelement Definition END 
        
        // ==================== Eventhandler Deklaration START 
        this.ButtonSchliessen.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                schliesseFensterActionPerformed();
            }
        });
        
        this.ButtonAnmeldung.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                
            }
        });
        // ===================== Eventhandler Deklaration END 
    }
}

So das wars dann funktioniert das ganze auch. Ich hatte die ScrollPane der ContentPane hinzugefügt, aber die Funktion setComponentZOrder für das Frame ausgeführt deswegen hatte es nicht funktioniert.

CU Micha und Danke für eure Hilfe Jungs
 
Zuletzt bearbeitet von einem Moderator:
@Matze
Da hast du vollkommen recht Matze der filtert das alles heraus, aber der Filtervorgang dauert eben auch ein bisschen Zeit und das meine ich. Wenn du nur importierst was du brauchst dann muss er nichts bis wenig filtern. Außerdem geht dem Filtervorgang eine Analyse voraus und je größer die Pakete sind desto mehr Zeit braucht er noch zum analysieren bevor er filtern kann.

Aber egal genug davon.

Danke nochmal für eure Unterstützung, manchmal macht eben die seelische Unterstützung auch schon was aus, denn sonst hätte ich irgendwann das ganze hingeschmissen.

Micha
 
Zuletzt bearbeitet:
Hier ist nochmal eine Lösung ohne setComponentZOrder. Die Popups wurde die ganze Zeit angezeigt, sie waren nur im Hintergrund.
Java:
public class FormAnmeldung {
	// ==================== Steuerelement Deklaration START ====================
	// Frame
	private javax.swing.JFrame FrameAnmeldung;

	// PasswortField
	private javax.swing.JPasswordField PasswordFieldPasswort;

	// Panel
	private javax.swing.JPanel PanelBackgroundPanel;

	private javax.swing.JPanel PanelBildPanel;

	// TextField
	private javax.swing.JTextField TextFieldBenutzerName;

	// ComboBoxen
	private javax.swing.JComboBox ComboBoxAufloesung;

	private javax.swing.JComboBox ComboBoxSprache;

	// Labels
	private javax.swing.JLabel LabelMenue;

	private javax.swing.JLabel LabelBenutzerName;

	private javax.swing.JLabel LabelPasswort;

	private javax.swing.JLabel LabelAufloesung;

	private javax.swing.JLabel LabelSprache;

	// Buttons
	private javax.swing.JButton ButtonAnmeldung;

	private javax.swing.JButton ButtonSchliessen;

	// ===================== Steuerelement Deklaration END =====================

	// ====================== Variablen Deklaration START ======================
	// ======================= Variablen Deklaration END =======================

	// ====================== Funktionen Definition START ======================
	// ======================= Funktionen Definition END =======================

	// ==================== Eventhandler Definition START ======================
	private void schliesseFensterActionPerformed() {
		this.FrameAnmeldung.setVisible(false);
		this.FrameAnmeldung.dispose();
	}

	// ===================== Eventhandler Definition END =======================

	public FormAnmeldung() {

		// ==================== Steuerelement Definition START =================
		// erzeuge Frame
		this.FrameAnmeldung = new javax.swing.JFrame();
		this.FrameAnmeldung.setTitle("Anmeldung DB XYZ");
		this.FrameAnmeldung.setBounds(100, 100, 300, 440);
//		this.FrameAnmeldung.setLayout(null);

		// erzeuge Scrollpane
		

		java.awt.Color PanelBackgroundColor = new java.awt.Color(175, 210, 248);

		// erzeuge Panel
		this.PanelBackgroundPanel = new javax.swing.JPanel();
		this.PanelBackgroundPanel.setBounds(0, 0, 296, 420);
		this.PanelBackgroundPanel.setBackground(PanelBackgroundColor);
		this.PanelBackgroundPanel.setLayout(null);
		javax.swing.JScrollPane x = new javax.swing.JScrollPane(PanelBackgroundPanel);
		this.FrameAnmeldung.add(x);

		this.PanelBildPanel = new javax.swing.JPanel();
		this.PanelBildPanel.setBounds(10, 180, 270, 180);
		this.PanelBildPanel.setBackground(new java.awt.Color(245, 245, 245));
		this.PanelBackgroundPanel.add(this.PanelBildPanel);

		// this.FrameAnmeldung.setBackground(PanelBackgroundColor);
		// x.setBackground(PanelBackgroundColor);
		this.LabelMenue = new javax.swing.JLabel(
				"Anmeldung an der XYZ Datenbank");
		this.LabelMenue.setBounds(35, 5, 250, 20);
		this.PanelBackgroundPanel.add(this.LabelMenue);

		// erzeuge Labels
		this.LabelBenutzerName = new javax.swing.JLabel("Benutzername");
		this.LabelBenutzerName.setBounds(10, 50, 90, 20);
		this.PanelBackgroundPanel.add(this.LabelBenutzerName);

		this.LabelPasswort = new javax.swing.JLabel("Passwort");
		this.LabelPasswort.setBounds(10, 80, 100, 20);
		this.PanelBackgroundPanel.add(this.LabelPasswort);

		this.LabelAufloesung = new javax.swing.JLabel("Auflösung");
		this.LabelAufloesung.setBounds(10, 110, 100, 20);
		this.PanelBackgroundPanel.add(this.LabelAufloesung);

		this.LabelSprache = new javax.swing.JLabel("Sprache");
		this.LabelSprache.setBounds(10, 140, 100, 20);
		this.PanelBackgroundPanel.add(this.LabelSprache);

		// erzeuge Textfield
		this.TextFieldBenutzerName = new javax.swing.JTextField();
		this.TextFieldBenutzerName.setBounds(110, 50, 170, 20);
		this.TextFieldBenutzerName.setBackground(new java.awt.Color(245, 245,
				245));
		this.PanelBackgroundPanel.add(this.TextFieldBenutzerName);

		// erzeuge Passwort Textfield
		this.PasswordFieldPasswort = new javax.swing.JPasswordField();
		this.PasswordFieldPasswort.setBounds(110, 80, 170, 20);
		this.PasswordFieldPasswort.setBackground(new java.awt.Color(245, 245,
				245));
		this.PanelBackgroundPanel.add(this.PasswordFieldPasswort);

		// erzeuge ComboBoxen
		this.ComboBoxAufloesung = new javax.swing.JComboBox();
		this.ComboBoxAufloesung.setBounds(110, 110, 170, 20);
		this.ComboBoxAufloesung
				.setBackground(new java.awt.Color(245, 245, 245));
		this.ComboBoxAufloesung.addItem("800 x 600");
		this.ComboBoxAufloesung.addItem("1024 x 768");
		this.ComboBoxAufloesung.addItem("1280 x 1024");
		this.PanelBackgroundPanel.add(this.ComboBoxAufloesung);
		// this.PanelBackgroundPanel.(this.ComboBoxAufloesung,0);
		this.ComboBoxAufloesung.validate();

		this.ComboBoxSprache = new javax.swing.JComboBox();
		this.ComboBoxSprache.setBounds(110, 140, 170, 20);
		this.ComboBoxSprache.setBackground(new java.awt.Color(245, 245, 245));
		this.ComboBoxSprache.addItem("German");
		this.ComboBoxSprache.addItem("English");
		this.ComboBoxSprache.addItem("Netherlands");
//		this.ComboBoxSprache.setSelectedIndex(0);
		this.PanelBackgroundPanel.add(this.ComboBoxSprache);
//		this.ComboBoxSprache.doLayout();
//		ComboBoxSprache.showPopup();
//		this.ComboBoxSprache.validate();

		// erzeuge Buttons
		this.ButtonAnmeldung = new javax.swing.JButton("Anmelden");
		this.ButtonAnmeldung.setBounds(10, 380, 100, 20);
		this.PanelBackgroundPanel.add(this.ButtonAnmeldung);

		this.ButtonSchliessen = new javax.swing.JButton("Schließen");
		this.ButtonSchliessen.setBounds(180, 380, 100, 20);
		this.PanelBackgroundPanel.add(this.ButtonSchliessen);

		this.FrameAnmeldung
				.setDefaultCloseOperation(this.FrameAnmeldung.DISPOSE_ON_CLOSE);
		this.FrameAnmeldung.setVisible(true);
		this.FrameAnmeldung.repaint();
		// ==================== Steuerelement Definition END ===================

		// ==================== Eventhandler Deklaration START =================
		this.ButtonSchliessen
				.addActionListener(new java.awt.event.ActionListener() {
					public void actionPerformed(java.awt.event.ActionEvent evt) {
						schliesseFensterActionPerformed();
					}
				});

		this.ButtonAnmeldung
				.addActionListener(new java.awt.event.ActionListener() {
					public void actionPerformed(java.awt.event.ActionEvent evt) {

					}
				});
		// ===================== Eventhandler Deklaration END ==================
	}

	public static void main(String[] args) {
		FormAnmeldung x = new FormAnmeldung();
	}
}

MFG

zEriX
 
Zuletzt bearbeitet:
@Zerix
Du hast rechtt das ist auch eine Variante an die ich nicht gedacht habe, aber in meinem anderen Quellcode zu meinem Projekt funktioniert das auch so, ohne das ich die ZOrder angebe. mhh naja egal. Hauptsache jetzt hat das Gewissen seine Ruhe und ärgert mich nicht mehr Nachts. :-)
 
Zurück