Las etiquetas JFrame aparecen superpuestas

Acabo de programar un programa que tiene un JFrame que contiene una matriz de JLabels. La matriz obtiene la posición de los JLabel individuales asignados por un bucle for:

for(int i=0; i<label_entries.length; i++){
    label_entries[i].setLocation(10, i*30);
    label_entries[i].setSize(120,30);
    dialog.add(label_entries[i]);   
}

No se confunda, el nombre de mi JFrame es "diálogo". Hay un problema simple: el for-loop no funciona como debería hacerlo, y no sé por qué, aquí está el resultado en mi JFrame: Imgur .

No se preocupe por las entradas individuales de JLabel, lo interesante es la posición de "Telefon". Si configuro el comienzo del bucle en

for(int i=0; i<label_entries.length-1; i++){...}

Es el mismo problema, solo con otro JLabel.

Espero que me puedan ayudar, saludos desde Alemania

Editar: Aquí está el código completo:

    JFrame dialog = new JFrame();
    dialog.setBounds(25, 50, 500, 500);
    dialog.setTitle("Eintrag hinzufügen");
    dialog.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    dialog.setVisible(true);

    JLabel[] label_entries = new JLabel[11];
    JTextField[] textfields = new JTextField[11];
    label_entries[0] = new JLabel("Vorname :");
    label_entries[1] = new JLabel("Nachname :");
    label_entries[2] = new JLabel("Nummer :");
    label_entries[3] = new JLabel("Geburtstag :");
    label_entries[4] = new JLabel("Land :");
    label_entries[5] = new JLabel("PLZ :");
    label_entries[6] = new JLabel("Stadt :");
    label_entries[7] = new JLabel("Strasse :");
    label_entries[8] = new JLabel("Hausnummer :");
    label_entries[9] = new JLabel("E-Mail :");
    label_entries[10] = new JLabel("Telefon :");


    for(int i=0; i<label_entries.length; i++){
        label_entries[i].setLocation(10, i*30);
        label_entries[i].setSize(120,30);
        dialog.add(label_entries[i]);   
    }

Esto debería ser más fácil de entender ...

Respuesta 1

Un problema obvio es que está estableciendo posiciones absolutas de sus componentes. Típicamente LayoutManagerse usa a para este propósito.

Para borrar el administrador de diseño predeterminado del JFramepanel de contenido de una, configúrelo nulljusto después de crear el marco.

JFrame dialog = new JFrame();
dialog.setLayout(null);
Respuesta: 2

Necesito detectar si un lector está vacío (no generará datos), antes de pasar el lector a alguna función externa. Lo mejor que puedo encontrar es envolver mi Reader en un BufferedReader que garantiza ...

Estoy tratando de usar un grupo de subprocesos fijos en Java 8 que funciona perfecto siempre que permanezca dentro de la misma función. Una vez que trato de compartir el ejecutor como parámetro, nunca se ejecuta en paralelo. Esto funciona ...

Tengo un Edittext, donde quiero permitir solo números y números decimales (máximo 2 decimales después del separador, por ejemplo, 125.50). Implementé un filtro para esto: final EditText field1 = (EditText) ...

¿Hay alguna manera en Intellij para crear un punto de interrupción condicional cuando una clase específica está presente en el stacktrace? Alternativamente, cuando se pasó un punto de interrupción específico en este stacktrace. Ejemplo dado: Let '...