JPanel

Status
Nicht offen für weitere Antworten.

MQue

Top Contributor
Moin,

auf einem größeren Panel plaziere ich ein kleineres Panel auf dem sich ein TextFeld befindet, Wenn ich mein Programm starte, ist zwar das kleine Panel auf dem großen Panel zu sehen aber erst wenn ich mit der Maus auf das kleine Panel klicke, ist das TextFeld auf dem kleinen Panel zu sehen,

Was muss ich da noch machen, damit gleich das TextFeld auf dem kleinen Panel zu sehen ist?
 

The_S

Top Contributor
setVisible erst dann aufrufen, wenn alles geadded wurde. Oder alternativ nachdem die GUI "steht" nochmal alles validieren.
 

guni

Bekanntes Mitglied
hi,

ich lern selber erst seit einer Woche JAVA und Swing hab ich mir noch so gut wie gar nicht angeschaut. (JPanel ist doch ein Bestandteil von Swing, oder?)
... aber ich bild mir ein, dass ich da beim Überfliegen mal so eine pack-Funktion gesehen habe ... in Perl/Tk ist das genau die Funktion, bei der der Hund begraben liegen würde, wenn ein Textfeld nicht sichtbar ist :D

lg, guni
 

The_S

Top Contributor
JPanel ist Swing, und pack sorgt dafür, dass das Fenster auf genau die Größe gesetzt wird, die minimal benötigt wird, um alle Componenten darin vollständig anzuzeigen. Hat mit dem Problem also nichts zu tun.
 

MQue

Top Contributor
nö, funkt auch nicht,

ich hab mal den Code, wo ich das JPanel erzeuge, gepostet:

Code:
GridBagLayout gbl = new GridBagLayout();
                    GridBagConstraints gbc = new GridBagConstraints();                
                    gbc.weightx = 100;
                    gbc.weighty = 100;
                    gbc.fill = GridBagConstraints.BOTH;
                    MyPanel wertPanel = new MyPanel(gbl);
                    gbl.setConstraints(wertPanel, gbc);
                    Border border1 = BorderFactory.createTitledBorder(null, "Überschrift", border.TitledBorder.LEFT, border.TitledBorder.TOP, new Font("Arial", 1, 12), Color.DARK_GRAY);                   
                    wertPanel.setBorder(border1);   
                    wertPanel.setBounds(10, 10, 100, 50);
                    wertPanel.setBackground(Color.LIGHT_GRAY);                    
                    gbc.insets = new Insets(1,1,3,7);
                    gbc.weightx = 1;
                    gbc.weighty = 120;
                    gbc.fill = GridBagConstraints.BOTH;
                    DecimalFormat df = new DecimalFormat("0");    
                    JFormattedTextField wertAnzeige = new JFormattedTextField(df);
                    wertAnzeige.setText("0,000");
                    wertAnzeige.setFont(new Font("Arial", 1, 12));		
                    wertAnzeige.setHorizontalAlignment(JTextField.RIGHT);
                    wertAnzeige.setAlignmentY(JTextField.BOTTOM);
                    wertAnzeige.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
                    wertAnzeige.setPreferredSize(new Dimension(70, 40));		
                    gbl.setConstraints(wertAnzeige, gbc);
                    JLabel einheit = new JLabel("mmWs");
                    einheit.setFont(new Font("Arial", 1, 12));                    
                    gbc.fill = GridBagConstraints.BOTH;
                    gbl.setConstraints(wertAnzeige, gbc);
                    wertPanel.add(wertAnzeige);
                    wertPanel.add(einheit);
                    view.addComponent(wertPanel);

Code:
Class View:
 public void addComponent(JComponent component) {
        component.repaint();
        panel.add(component);
        component.setVisible(true);
        panel.setVisible(true);
        mainPanel.setVisible(true);
        dragPaintPanel.setVisible(true);
        panel.repaint();
        mainPanel.repaint();
        }
 

The_S

Top Contributor
Sooo ... jetzt zeigst du mir zuersteinmal die Stelle, wo du das Umgesetzt hast, was ich dir geschrieben habe.

Anschließend entfernst du allen unnötigen Code aus deinen Methoden.
 

MQue

Top Contributor
Ich würd sagen, dass ich es hier umgesetzt habe:

Code:
[code]
Class View:
 public void addComponent(JComponent component) {
        component.repaint();
        panel.add(component);   // hier wird die Componente geadded und dann versuche ich, alles anzuzeigen (setVisible(true))
        component.setVisible(true);
        panel.setVisible(true);
        mainPanel.setVisible(true);
        dragPaintPanel.setVisible(true);
        panel.repaint();
        mainPanel.repaint();
        }
[/code]

und was stimmt da nicht
 

The_S

Top Contributor
würde ich nicht sagen, dass du das hier umgesetzt hast.

1.) Die ganzen setVisible kannst du dir sparen
2.) repaint solltest du dir auch sparen können
3.) validate (zum Validieren) rufst du gar nicht auf
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Y Bild in JPanel setzen Allgemeine Java-Themen 2
Y Wie kann ich ein erstelltes JPanel meinem Frame hinzufügen? Allgemeine Java-Themen 1
G JPanel lädt nicht?! Allgemeine Java-Themen 20
D JPanel in Mail darstellen Allgemeine Java-Themen 30
T Drucken von JPanel Allgemeine Java-Themen 4
Sin137 OOP Auf JPanel zugreifen, das einem JTabbePane hinzugefügt worden ist Allgemeine Java-Themen 10
M Threads JPanel eingeforen mit Threads Allgemeine Java-Themen 2
F JPanel Hintergrundbilder Allgemeine Java-Themen 1
C Position speichern von verschiebbaren Elementen auf JPanel Allgemeine Java-Themen 3
I JPanel soll sich dem JFrame anpassen Allgemeine Java-Themen 1
S OOP JFrame als Observer eines JPanel Allgemeine Java-Themen 3
S JPanel einfügen in MainClass Allgemeine Java-Themen 4
S JLabel auf JPanel Allgemeine Java-Themen 10
G JPanel in JFrame Allgemeine Java-Themen 9
DStrohma Swing Nicht möglich für ein JPanel den Fokus zu bekommen? Allgemeine Java-Themen 9
S Swing JPanel werden nicht angezeigt Allgemeine Java-Themen 6
T iText Dokument in DB und dann in ein JPanel Allgemeine Java-Themen 5
P JPanel - JFrame Allgemeine Java-Themen 6
B JScrollPane und JPanel: Scrollen nur nach Größe des JPanels Allgemeine Java-Themen 2
Z Dynamisches JPanel Allgemeine Java-Themen 10
J Arbeiten mit Punkten in einem JPanel Allgemeine Java-Themen 3
H JPanel direkt in PDF umwandeln Allgemeine Java-Themen 2
L JPanel schraffiert,contour oder sonst was? Allgemeine Java-Themen 3
G Componenten auf JPanel disablen Allgemeine Java-Themen 3
MQue Raster auf einem JPanel Allgemeine Java-Themen 8
S Lässt sich eigne JPanel Klasse in ein Array "stecken&qu Allgemeine Java-Themen 5
M JTable verändert Position auf meinem JPanel Allgemeine Java-Themen 3
T JPanel to Image? Allgemeine Java-Themen 6
P JPanel/Zoom Allgemeine Java-Themen 2
M Neues JPanel in JFrame einbinden Allgemeine Java-Themen 6
L JPanel(bzw.) Panels transparent machen Allgemeine Java-Themen 7
T Allgemeinklasse zu JPanel, JButton. Allgemeine Java-Themen 26
P JPanel in JPanel Allgemeine Java-Themen 3
P Browser in JPanel Allgemeine Java-Themen 3
MQue Komponenten einem JPanel hinzufügen Allgemeine Java-Themen 9
MQue JButton zu JPanel hinzufügen Allgemeine Java-Themen 7
P Image auf JPanel auf JFrame Allgemeine Java-Themen 3
P JPanel in JFrame Allgemeine Java-Themen 2
E Pixelweise auf einem JPanel/JLabel o.ä. zeichnen Allgemeine Java-Themen 4
M IExplorer in einen JPanel öffnen und kontrollieren? Allgemeine Java-Themen 9
F While(true)-Schleife im JPanel Allgemeine Java-Themen 9
M ContentPane und JPanel Allgemeine Java-Themen 8
T JApplet - JEditorPane gegen JPanel tauschen Allgemeine Java-Themen 2
S JPanel zur Laufzeit verbergen bzw. wieder anzeigen lassen Allgemeine Java-Themen 4
G JComboBox mit aufklappbarem JPanel? Allgemeine Java-Themen 13
G Aus JPanel Image Hohlen Allgemeine Java-Themen 3
G JPanel auto scrollen Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben