Swing "Eigenes" JPanel wird dem JScrollPane nicht hinzugefügt

O

Osram127

Mitglied
Ich habe mit dem Window-Builder von Eclipse ein JFrame mit einem JScrollPane erstellt (Klasse Oberflaeche) und anschließend die Klasse Eintrag, die ein JPanel sein soll. Mein Ziel ist es, dass wenn ich auf den JButton bHinzufügen klicke, ein neues Objekt der Klasse Eintrag als JPanel in dem JScrollPane angezeigt wird. Jedoch wird dieses Panel nicht angezeigt. Auch nachdem ich für das JScrollPane ein eigenes Panel mit BoxLayout angelegt habe, wird kein Objekt der Klasse Eintrag angezeigt. Die Konsole spuckt leider auch keine Fehlermeldung aus, also auch nix aus dem ich schlau werde.

Mein Code:
Java:
package warteliste;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import java.awt.event.*;

import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.Toolkit;
import java.awt.Font;

public class Oberflaeche extends JFrame implements ActionListener {

    private JPanel contentPane;
    private JPanel panel;
    private JTextField tf1;
    private JButton bHinzufuegen;
    private JScrollPane warteschlange;
    private static String text;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Oberflaeche frame = new Oberflaeche();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public Oberflaeche() {
        setIconImage(Toolkit.getDefaultToolkit().getImage(Oberflaeche.class.getResource("/img/icon1.png")));
        setTitle("Warteliste");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(200, 150, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);
        
        warteschlange = new JScrollPane();
        warteschlange.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
        warteschlange.setBounds(10, 11, 414, 195);
        contentPane.add(warteschlange);
        
        panel = new JPanel();
        panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
        warteschlange.add(panel);
        
        tf1 = new JTextField();
        tf1.setFont(new Font("Tahoma", Font.PLAIN, 14));
        tf1.setBounds(10, 217, 299, 33);
        contentPane.add(tf1);
        tf1.setColumns(10);
        
        bHinzufuegen = new JButton("Hinzuf\u00FCgen");
        bHinzufuegen.setBounds(319, 217, 105, 33);
        bHinzufuegen.addActionListener(this);
        
        contentPane.add(bHinzufuegen);
        
    }
    
    
    public void actionPerformed(ActionEvent ae) {
        if(ae.getSource() == this.bHinzufuegen) {
            text = tf1.getText();
            
            try {
                panel.add(new Eintrag());
                System.out.println("Eintrag wurde hinzugefügt");
            } catch(Exception e1) {
                e1.printStackTrace();
            }
            
            panel.validate();
            contentPane.validate();
            warteschlange.validate();
            this.validate();
        }
    }
    
    
    public static String getText() {
        return text;
    }
}

Java:
package warteliste;

import javax.swing.*;

public class Eintrag extends JPanel {

    /**
     * Create the panel.
     */
    public Eintrag() {
        setLayout(null);
        
        JLabel name = new JLabel();
        System.out.println(Oberflaeche.getText());
        name.setText(Oberflaeche.getText());
        name.setBounds(10, 11, 248, 19);
        add(name);
        
        JCheckBox chckbxNewCheckBox = new JCheckBox("");
        chckbxNewCheckBox.setBounds(318, 7, 28, 23);
        add(chckbxNewCheckBox);

    }
}
 
L

LimDul

Top Contributor
Ich würde dir ja empfehlen, einen LayoutManager zu nutzen. Beim Null Layout muss man wissen was man tut.

Unter anderem musst du bei deinem Panel auf die preferredSize setzen, damit das klappt:
By default JScrollPane uses ScrollPaneLayout to handle the layout of its child Components. ScrollPaneLayout determines the size to make the viewport view in one of two ways:

If the view implements Scrollable a combination of getPreferredScrollableViewportSize, getScrollableTracksViewportWidth and getScrollableTracksViewportHeightis used, otherwise
getPreferredSize is used.

Hier steht auch noch was: https://docs.oracle.com/javase/tutorial/uiswing/components/scrollpane.html#sizing
 
O

Osram127

Mitglied
Ok danke, es hat mit setViewPortView() funktioniert. Jetzt habe ich allerdings eine neue Frage: Wie kann ich dann der warteschlange wieder Einträge entfernen? Bei add() ging das ja immer mit remove(), aber wie geht das bei setViewportView()?
 
mihe7

mihe7

Top Contributor
Analog zu panel.add rufst Du panel.remove auf :) Die View des Viewports ändert sich ja nicht - es ist nach wie vor das selbe Panel, das angezeigt wird.
 
O

Osram127

Mitglied
Danke, hat alles funktioniert😁
Hab ganz vergessen dass ich auf das JScrollpane ein extra panel draufgelegt hatte
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Swing JComboBox eigenes Design AWT, Swing, JavaFX & SWT 3
L LookAndFeel Eigenes Design für die Applikation AWT, Swing, JavaFX & SWT 4
L JavaFX als eigenes Objekt AWT, Swing, JavaFX & SWT 3
M Plugin oder eigenes Tool mit zB SWING AWT, Swing, JavaFX & SWT 2
E Eigenes TableModel für ArrayList<String[]> AWT, Swing, JavaFX & SWT 5
N LookAndFeel Wie kann ich mein eigenes LookAndFeel machen? AWT, Swing, JavaFX & SWT 6
1 Eigenes Layout schreiben AWT, Swing, JavaFX & SWT 4
J Eigenes Gui/ Look and Feel AWT, Swing, JavaFX & SWT 14
D Eigenes Textfeld AWT, Swing, JavaFX & SWT 8
A Minimalestopuhr: JLabel.setText() durch eigenes Event ändern AWT, Swing, JavaFX & SWT 6
C Eigenes Hintergrundbild einfügen AWT, Swing, JavaFX & SWT 6
M Eigenes Panel aus Component? AWT, Swing, JavaFX & SWT 5
3 Eigenes Frame/Window programmieren AWT, Swing, JavaFX & SWT 2
F LayoutManager Eigenes Layout die Lösung?! AWT, Swing, JavaFX & SWT 4
P Eigenes Textverarbeitungsprogramm AWT, Swing, JavaFX & SWT 4
R [JTree/DefaultTreeCellRenderer] eigenes Renderer-Panel, so breit wie der JTree AWT, Swing, JavaFX & SWT 2
Developer_X LookAndFeel Eigenes Look And Feel erstellen AWT, Swing, JavaFX & SWT 33
B SWT Eigenes Icon für CheckboxTreeViewer AWT, Swing, JavaFX & SWT 3
KrokoDiehl Swing Design-Frage: eigenes Line-Wrapping AWT, Swing, JavaFX & SWT 5
M Swing eigenes StyledDocument AWT, Swing, JavaFX & SWT 2
D eigenes Tablemodel, Zeile löschen ArrayindexOOB excp AWT, Swing, JavaFX & SWT 4
S JTree mit Daten aus Model füllen, eigenes TreeModel (gute Dokumentation des Problems) AWT, Swing, JavaFX & SWT 2
P Eigenes TableModel abgeleitet von AbstractTableModel (neue rows nicht sichtbar) AWT, Swing, JavaFX & SWT 6
M Eigenes ActionEvent / Eigener Listener AWT, Swing, JavaFX & SWT 2
A JTable, eigenes TableModel und dessen Objekte AWT, Swing, JavaFX & SWT 4
G JToolbar gleich als eigenes Fenster öffnen AWT, Swing, JavaFX & SWT 2
G Eigenes ComboBoxModel AWT, Swing, JavaFX & SWT 2
M eigenes DialogFenster AWT, Swing, JavaFX & SWT 4
L Button ändert eigenes Bild und Progressbar-Value nicht AWT, Swing, JavaFX & SWT 6
J eigenes JOptionPane ? AWT, Swing, JavaFX & SWT 2
D Eigenes Tooltip AWT, Swing, JavaFX & SWT 5
G eigenes option pane AWT, Swing, JavaFX & SWT 5
C Eigenes Event AWT, Swing, JavaFX & SWT 8
S Eigenes Package für die GUI? AWT, Swing, JavaFX & SWT 6
P Eigenes Look&Feel schreiben (Tutorials?) AWT, Swing, JavaFX & SWT 6
B Eigenes Events AWT, Swing, JavaFX & SWT 3
G für showInputDialog kein eigenes Icon auswählen AWT, Swing, JavaFX & SWT 6
M JDialog und eigenes Icon AWT, Swing, JavaFX & SWT 10
P Button simpler random auf einem JPanel verteilen? AWT, Swing, JavaFX & SWT 3
Ich lerne Java. Swing Von JPanel A auf JPanel B zugreifen. AWT, Swing, JavaFX & SWT 4
A JPanel austauschen und Focus geben AWT, Swing, JavaFX & SWT 3
E Auf JPanel malen und davor JComponenten anzeigen AWT, Swing, JavaFX & SWT 12
L JComponent aus JPanel anhand Mausposition ermitteln AWT, Swing, JavaFX & SWT 10
J JPanel wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
B Verschiebbares JPanel "ruckelt" im Randbereich AWT, Swing, JavaFX & SWT 2
S Swing JPanel nimmt keinen KeyListener an AWT, Swing, JavaFX & SWT 7
K JLabel mit Bilder im nicht initialisierten JPanel hinzufügen AWT, Swing, JavaFX & SWT 5
Hatsi09 Swing JPanel Bild einfügen AWT, Swing, JavaFX & SWT 14
L JPanel zeigt keinen Inhalt AWT, Swing, JavaFX & SWT 1
dereki2000 JPanel mit Rückgbe wie bei JOptionPane AWT, Swing, JavaFX & SWT 3
E Hintergrundfarbe setzen in JPanel funktioneirt nicht AWT, Swing, JavaFX & SWT 4
P JPanel KeyListener hinzufügen AWT, Swing, JavaFX & SWT 8
S Nach scrollen verschwindet das zuvor im JPanel gezeichnete AWT, Swing, JavaFX & SWT 2
P Bewegung eines Balkens in eineum JPanel welches als Spielfeld fungiert AWT, Swing, JavaFX & SWT 2
L Swing JPanel Größe anpassen AWT, Swing, JavaFX & SWT 6
D Platzierung von JTextfield in JPanel AWT, Swing, JavaFX & SWT 3
D Swing Anwendung ohne JPanel erstellen AWT, Swing, JavaFX & SWT 1
M Swing JPanel in JScrollPane AWT, Swing, JavaFX & SWT 3
M Zwei JPanel übereinander nur vorderes "repainten" AWT, Swing, JavaFX & SWT 3
J 2D-Grafik Background einer Jpanel Klasse ändern AWT, Swing, JavaFX & SWT 1
J Ziehen eines Buttons im JPanel AWT, Swing, JavaFX & SWT 2
J Button lässt sich nicht auf dem JPanel verschieben AWT, Swing, JavaFX & SWT 5
D zwei JLabel stapeln in einem JPanel AWT, Swing, JavaFX & SWT 5
DaCrazyJavaExpert Swing JPanel "ContentPane" wird nicht gesetzt/angezeigt AWT, Swing, JavaFX & SWT 16
DaCrazyJavaExpert Swing Größe des JPanel ändern/wird nicht geändert. AWT, Swing, JavaFX & SWT 3
DaCrazyJavaExpert Swing JPanel wird in JScollPane nicht angezeigt AWT, Swing, JavaFX & SWT 2
it_is_all JPanel verschwindet nach Button-Klick AWT, Swing, JavaFX & SWT 2
B Bar Plot in Swing JPanel AWT, Swing, JavaFX & SWT 0
F Screenshot eines JPanel AWT, Swing, JavaFX & SWT 3
S JPanel rotieren, Bild ist abgeschnitten, Clipping? AWT, Swing, JavaFX & SWT 0
M Swing JPanel flüssig verschieben AWT, Swing, JavaFX & SWT 5
G Nur ein JPanel wird angezeigt AWT, Swing, JavaFX & SWT 9
kilopack15 JPanel im laufenden Zustand einfärben AWT, Swing, JavaFX & SWT 2
kilopack15 JPanel Farbverwaltung AWT, Swing, JavaFX & SWT 1
A JScrollPane soll JPanel mit JButtons enthalten und eine Scollbar anzeigen AWT, Swing, JavaFX & SWT 1
A Swing JLabels in einer ForEach Schleife an den JPanel anheften (UNO Netzwerkspiel) AWT, Swing, JavaFX & SWT 1
L JPanel zeichnet im Konstrukter erzeugten Hintergrund nicht AWT, Swing, JavaFX & SWT 10
Java_RY wie kann ich auf JButtons in einem JPanel zugreifen AWT, Swing, JavaFX & SWT 3
F Zeichnung einem JPanel im Layoutmanager zuweisen AWT, Swing, JavaFX & SWT 3
Meeresgott Swing Umgang mit JPanel AWT, Swing, JavaFX & SWT 4
R 2D-Grafik PNG Bild per Graphics auf JPanel AWT, Swing, JavaFX & SWT 9
K JPanel Bilder bei Windows nicht darstellbar AWT, Swing, JavaFX & SWT 6
W Swing JPanel nur einmal nach mehreren Änderungen neu zeichnen AWT, Swing, JavaFX & SWT 1
J Swing Zeichenfläche im JPanel des Haupfenster anzeigen lassen AWT, Swing, JavaFX & SWT 4
A Swing JPanel zeigt Buttons nicht an AWT, Swing, JavaFX & SWT 4
R JPanel überzeichnet alles? AWT, Swing, JavaFX & SWT 1
D Von JPanel auf anderes JPanel zugreifen AWT, Swing, JavaFX & SWT 9
L Swing Teile eines JPanel in eigene Klasse auslagern AWT, Swing, JavaFX & SWT 3
I JPanel - Verwaltung/ Anordnung AWT, Swing, JavaFX & SWT 4
T JComponents zur Laufzeit auf JPanel darstellen AWT, Swing, JavaFX & SWT 10
F Java Swing Rechteck in JPanel zeichnen AWT, Swing, JavaFX & SWT 7
J Linien auf JPanel zeichnen AWT, Swing, JavaFX & SWT 3
L ImageIcon auf JPanel wird nicht angezeigt(keiner Fehlermeldung) AWT, Swing, JavaFX & SWT 11
M Swing JPanel innerhalb eines Frames verschieben AWT, Swing, JavaFX & SWT 3
T JTextField Array im JPanel wird nicht komplett angezeigt AWT, Swing, JavaFX & SWT 7
K Swing JPanel ueber komplette Form legen AWT, Swing, JavaFX & SWT 1
W Swing Größenänderung vom JPanel im JScrollPane und anschließendes positionieren AWT, Swing, JavaFX & SWT 2
R Komponenten von JPanel bleiben unsichtbar AWT, Swing, JavaFX & SWT 2
O JTabeddpane aber jedes JPanel als eigene Klasse anlegen AWT, Swing, JavaFX & SWT 7
llabusch Linien in JPanel zeichnen AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Anzeige

Neue Themen


Oben