Problem Netbeans Komponenten

  • Themenstarter Themenstarter Gast
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Netbeans Komponenten nachträglich zur GUI hinzufügen

Hallo,

ich möchte mit Netbeans eine Datenbankabfrage machen und mir die Ergebnisse in JLabel’s anzeigen. Diese sind später in einer Klasse die dann für jeden Datensatz einzeln erzeugt werden. ABER mein Problem ist das ich ja nicht immer gleich viele Komponenten benötige und somit muss ich diese Komponenten ja per Hand einfügen, aber das bekomme ich leider nicht hin.
netbeans.JPG

Ich habe jetzt zum Ausprobieren einfach eine ganze einfache Oberfläche mit einem JPanel erstellt mit dem ich testen wollte wie man so etwas am einfügt - leider aber ohne Erfolg.
Code:
package javaapplication19;
import java.awt.*;
public class NeuJFrame extends javax.swing.JFrame {
    
    /** Creates new form NeuJFrame */
    public NeuJFrame() {
        initComponents();
    }
    
    // <editor-fold defaultstate="collapsed" desc=" Erzeugter Quelltext ">
    private void initComponents() {
        javax.swing.JPanel jPanel;

        //Stelle 1--------------------

        jPanel = new javax.swing.JPanel();
        //Stelle 2 ---------------------
        //JLabel test wird erzeugt und zum Panel hinzugefügt aber nicht angezeigt
        javax.swing.JLabel test = new javax.swing.JLabel("Test");
        jPanel.add(test);
        jLabel1 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        //Stelle 3 ---------------------
        //Stelle 4 ----------------------

        jLabel1.setText("jLabel1");

        org.jdesktop.layout.GroupLayout jPanelLayout = new org.jdesktop.layout.GroupLayout(jPanel);
        jPanel.setLayout(jPanelLayout);
        jPanelLayout.setHorizontalGroup(
            jPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanelLayout.createSequentialGroup()
                .addContainerGap(346, Short.MAX_VALUE)
                .add(jLabel1))
        );
        jPanelLayout.setVerticalGroup(
            jPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanelLayout.createSequentialGroup()
                .addContainerGap(134, Short.MAX_VALUE)
                .add(jLabel1))
        );

        [...]

        pack();
    }// </editor-fold>
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NeuJFrame().setVisible(true);
            }
        });
    }
    
    // Variablendeklaration - nicht modifizieren
    private javax.swing.JLabel jLabel1;
    // Ende der Variablendeklaration
    
}
Das in Zeile 21/22 erstellte Labelfeld ist aber leider nirgens zu sehen 🙁
 
oh ich hatte ja noch eine Zeile rausgenommen (--> Zeile 20/21), also das jLabel test mit der Beschriftung "Test" ist nicht zu sehen, das von Netbeans erstellte jLabel jLabel1 aber schon.
Also so sieht es aus:
netbeans2.JPG
 
Gast hat gesagt.:
org.jdesktop.layout.GroupLayout jPanelLayout = new org.jdesktop.layout.GroupLayout(jPanel);
jPanel.setLayout(jPanelLayout);
jPanelLayout.setHorizontalGroup(
jPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, jPanelLayout.createSequentialGroup()
.addContainerGap(346, Short.MAX_VALUE)
.add(jLabel1))
);
jPanelLayout.setVerticalGroup(
jPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, jPanelLayout.createSequentialGroup()
.addContainerGap(134, Short.MAX_VALUE)
.add(jLabel1))
);

[...]

Bei dem verwendeten GroupLayout müsstest Du das Label (wie im Code .add(JLabel1)) dem Layout bzw. der entsprechenden Group hinzufügen - jPanel.add(test); bringt da nichts. Für Deine Problemstellung würde ich allerdings ein anderes Layout als das GroupLayout wählen.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben