Combobox in Java - Problem

Hallo!

Ich bin gerade dabei ein Fromular in Java zu entwickeln, was später dazu dienen soll ein Textfile zu modifizieren.

Das Formular enthält JTextField's und eine JCombobox. Wenn die Textfelder leer sind, dann klappen sich die Einträge der Combobox vor die Textfelder. Das passt ja...

Wenn ich aber zuerst einen Text in die JTextfield's hineinschreibe, und ich die Einträge der JCombobox ausklappen will, dann sind die Textfelder im Vordergrund und die Einträge der Combobox sind nicht mehr sichtbar im Hintergrund.

Wie kann ich also definieren, dass die Einträge der Combobox in JEDEM Fall im Vordergrund sind? :rolleyes:

edit: Die Textfelder sind zusammen mit der Combobox in einem JPaneln namens "inhalt". "inhalt" hat ein GridLayout. Dieses JPanel ist, genauso wie das JPanel "head" ein untergeordnetes Panel von frame. frame hat BorderLayout

Danke für eure Mühe.

Hier mal der SourceCode (probiert ihn einfach mal aus)

PHP:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;



public class toplevel {
    
     private static void createAndShowGUI() {
            JFrame frame = new JFrame("TopLevel");
            frame.setSize(250, 250);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setLayout(new BorderLayout(0,20));
            
            
            
            //Überschrift
                 
            JLabel head = new JLabel("Bitte geben Sie die CNC Daten ein!", SwingConstants.CENTER);
            frame.add(head, BorderLayout.NORTH);
           

            Panel inhalt = new Panel();
            inhalt.setLayout(new GridLayout(5,2,0,5));
            
            //Beschriftung für Datenpunkt 1
            JLabel option1 = new JLabel("Datenpunkt 1", SwingConstants.CENTER);
            inhalt.add(option1);
           
            
            JTextField punkt1 = new JTextField();
            inhalt.add(punkt1);
            
            
            
            //Beschriftung für Datenpunkt 2
            JLabel option2 = new JLabel("Datenpunkt 2", SwingConstants.CENTER);
            inhalt.add(option2);
            
            //Auswahlfeld
            String[] lang = {"Werkzeug 1", "Werkzeug 2", "Werkzeug 3", "Werkzeug 4", "Werkzeug 5"};
            
            JComboBox combo = new JComboBox(lang);
            
            combo.setEditable(false);
            combo.setSelectedItem("Werkzeug 1");
            combo.setMaximumRowCount(5);
            
                    
            
            inhalt.add(combo); 
           
            //Beschriftung für Datenpunkt 3
            JLabel option3 = new JLabel("Datenpunkt 3", SwingConstants.CENTER);
            inhalt.add(option3);
            
            JTextField punkt3 = new JTextField();
            inhalt.add(punkt3);
            
            
          //Beschriftung für Datenpunkt 4
            JLabel option4 = new JLabel("Datenpunkt 4" , SwingConstants.CENTER);
            inhalt.add(option4);
            
            JTextField punkt4 = new JTextField();
            inhalt.add(punkt4);
            
            
          //Beschriftung für Datenpunkt 5
            JLabel option5 = new JLabel("Datenpunkt 5", SwingConstants.CENTER);
            inhalt.add(option5);
            
            JTextField punkt5 = new JTextField();
            inhalt.add(punkt5);
            
            frame.add(inhalt, BorderLayout.CENTER);
            
            //Buttons zum Übermitteln und Abbrechen
            Panel knopf = new Panel();
            knopf.setLayout(new FlowLayout());
            
            //Übermitteln
            JButton senden = new JButton("Senden");
            knopf.add(senden);
            
            
            //Abbrechen
            JButton abbrechen = new JButton("Abbrechen");
            knopf.add(abbrechen);
            
            //Aktion für Abbrechen-Knopf
            ActionListener a1 = new ActionListener(){
                public void actionPerformed(ActionEvent e){
                    System.exit(0);
                }

            };
            
            abbrechen.addActionListener(a1);
            
            frame.add(knopf, BorderLayout.SOUTH);
            
            
                   

            //Display the window.
           
            frame.setVisible(true);
        }

     public static void main(String[] args) {
            
            javax.swing.SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    createAndShowGUI();
                }
            });
            
            
                   
     
            
        }
     
     
     
}
mfg, metalwilli
 
Zuletzt bearbeitet:
AW: Combobox in Java - Problem

Hi PabloPicante!

Ich glaube, dass du für die GUI in Java mit SWING statt mit AWT arbeiten willst. Man sollte besser nie mit Swing und AWT zusammen arbeiten! Deshalb ist in deinem Code nur ein ganz kleiner Fehler zu sehen! ;)

Du sollst besser mit JPanel statt mit Panel verwenden! Panel gehört zu AWT und alle Komponenten von SWING wie JTextfield, JComboBox, usw. sollen auf den Container "JPanel" geaddet werden!

AWT:
PHP:
            Panel inhalt = new Panel();
...
            Panel knopf = new Panel();
SWING:
PHP:
            JPanel inhalt = new JPanel();
...
            JPanel knopf = new JPanel();
Das war's und der JComboBox ist jetzt immer im Vordergrund, wie du dir das vorgestellt hast! ;)

Gruß
Iron Monkey
 
Top