Swing Componenten werden nach Änderung des display modes verzerrt dargestellt

Diskutiere Swing Componenten werden nach Änderung des display modes verzerrt dargestellt im AWT, Swing, JavaFX & SWT Bereich.
E

Eichelhäer

Hallo,
ich bastel mir grad ein professorisches menu zusammen. Als Container nehme ich ein JPanel. Dieses und alle weiteren Componenten besitzen alle ein GroupLayout.
Mit einer Auflösung von 1280x720 wird die Anwendung sowohl im Fenstermodus als auch im Fullscreenmodus Korrekt angezeigt. Nur bei größeren Auflösungen dann nicht mehr. Ich verwende einen ItemListener mit ner JComboBox um die Auflösungen zu ändern. Den Hintergrund zeichne ich notgedrungen mit repaint() sowie paintChildren(), da ich es nicht besser weiss. Kann das an den GroupLayouts der Componenten selber liegen, oder hat das mit dem JFrame selber zu tun?

Grüße Eichelhäerr
 
E

Eichelhäer

Ok habe es. Musste die Größe des Hintergrund ImageIcons noch anpassen. Jetzt läufts auf allen Auflösungen.
 
E

Eichelhäer

Ich möchte hier dennoch kurz was fragen: Ich habe ein separates JPanel mit einem GroupLayout drauf und möchte u.a. dynamisch JButtons hinzufügen. Sobald ich aber die buttons mittels for-Schleife hinzufüge kommt der Fehler das meine Buttons nicht der horizontalGroup hinzugefügt worden sind. Hier mal der Code:

Code:
private JPanel createChatPanel() {
        JPanel panel = new JPanel();
        
        GroupLayout gl = new GroupLayout(panel);
        
        gl.setAutoCreateGaps(true);
        gl.setAutoCreateContainerGaps(true);
        
        for(int i = 0;i<10;i++) {
            person_buttons.add(new JButton());
        }
        
        for(int i = 0;i<person_buttons.size();i++) {
            person_name_labels.add(new JLabel(person_name));
            person_name_labels.get(i).setHorizontalAlignment(JLabel.RIGHT);
            person_name_labels.get(i).setForeground(Color.GRAY);
            person_buttons.get(i).setFont(font);
            person_buttons.get(i).setBackground(Color.BLACK);
            person_buttons.get(i).setContentAreaFilled(true);
            person_buttons.get(i).setBorderPainted(true);
            person_buttons.get(i).setFocusPainted(true);
            person_buttons.get(i).add(person_name_labels.get(i));
            person_buttons.get(i).setOpaque(true);
        }
        //das führt zu nem Fehler
        for(int i = 0;i<person_buttons.size();i++) {
            gl.setHorizontalGroup(
                gl.createSequentialGroup()
                    .addGroup(gl.createParallelGroup(GroupLayout.Alignment.LEADING)
                        .addComponent(person_buttons.get(i),GroupLayout.DEFAULT_SIZE,GroupLayout.DEFAULT_SIZE,Short.MAX_VALUE))
            );
            gl.setVerticalGroup(
                gl.createSequentialGroup()
                    .addComponent(person_buttons.get(i),40,GroupLayout.DEFAULT_SIZE,40)
            );
        }
        
        panel.setLayout(gl);
        
        return panel;
    }
Das Ganze soll dynamisch sein also zur laufzeit veränderbar (hinufügen und entfernen der buttons).Wenn ich die Buttons einzeln hardgecodet hinzufüge gehts.
Gruß Eichelhäer
 
Thema: 

Swing Componenten werden nach Änderung des display modes verzerrt dargestellt

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben