Nur graues Panel wird angezeigt

siser

Mitglied
Hi,
habe mir eine GUI erstellen lassen es wird aber nur ein graues Panel angezeigt im JFrame. woran liegt es?
setVisible(true) habe ich gemacht

[Java]
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Insets;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import jp.ac.osaka_u.ist.okano.graph.*; // GraphCanvas importieren

public class RoutenplanerGUI extends JFrame implements ActionListener, KeyListener {

private Routenplaner rp;
private JFrame Routenplaner;
private JScrollPane spWegbeschreibung;
private JTextPane tpWegbeschreibung;

private JButton bLade;
private JLabel lStrassenkarte;
private JLabel lWeg;
private JTextField tVon;
private JTextField tNach;
private JLabel lsuche;
private JLabel lnach;
private JButton bGo;
private JButton bNeuestadt;
private JPanel panelStrassenkarte;
// GraphCanvas panelStrassenkarte = new GraphCanvas(); // create Graph canvas

public RoutenplanerGUI() {
super();
this.initComponents();
this.setSize(800,800);
rp = new Routenplaner();

}

private void initComponents() {
this.setVisible(true);

Routenplaner = new JFrame();
spWegbeschreibung = new JScrollPane();
tpWegbeschreibung = new JTextPane();
bLade = new JButton();
lStrassenkarte = new JLabel();
lWeg = new JLabel();
tVon = new JTextField();
tNach = new JTextField();
lsuche = new JLabel();
lnach = new JLabel();
bGo = new JButton();
bNeuestadt = new JButton();
panelStrassenkarte = new JPanel();

//======== Routenplaner ========
{
Routenplaner.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
Routenplaner.setTitle("Routenplaner");
Container RoutenplanerContentPane = Routenplaner.getContentPane();
RoutenplanerContentPane.setLayout(null);

//======== spWegbeschreibung ========
{

//---- tpWegbeschreibung ----
tpWegbeschreibung.setEditable(false);
spWegbeschreibung.setViewportView(tpWegbeschreibung);
}
RoutenplanerContentPane.add(spWegbeschreibung);
spWegbeschreibung.setBounds(15, 240, 270, 100);

//======== panelStrassenkarte ========
{
panelStrassenkarte.setBackground(Color.white);
panelStrassenkarte.setLayout(null);

{ // compute preferred size
Dimension preferredSize = new Dimension();
for(int i = 0; i < panelStrassenkarte.getComponentCount(); i++) {
Rectangle bounds = panelStrassenkarte.getComponent(i).getBounds();
preferredSize.width = Math.max(bounds.x + bounds.width, preferredSize.width);
preferredSize.height = Math.max(bounds.y + bounds.height, preferredSize.height);
}
Insets insets = panelStrassenkarte.getInsets();
preferredSize.width += insets.right;
preferredSize.height += insets.bottom;
panelStrassenkarte.setMinimumSize(preferredSize);
panelStrassenkarte.setPreferredSize(preferredSize);
}
}
RoutenplanerContentPane.add(panelStrassenkarte);
panelStrassenkarte.setBounds(310, 45, 365, 295);

//---- bLade ----
bLade.setText("Lade Stra\u00dfenkarte");
RoutenplanerContentPane.add(bLade);
bLade.setBounds(new Rectangle(new Point(15, 30), bLade.getPreferredSize()));

//---- lStrassenkarte ----
lStrassenkarte.setText("Stra\u00dfenkarte:");
RoutenplanerContentPane.add(lStrassenkarte);
lStrassenkarte.setBounds(315, 15, 80, lStrassenkarte.getPreferredSize().height);

//---- lWeg ----
lWeg.setText("Wegbeschreibung:");
RoutenplanerContentPane.add(lWeg);
lWeg.setBounds(new Rectangle(new Point(15, 210), lWeg.getPreferredSize()));
RoutenplanerContentPane.add(tVon);
tVon.setBounds(150, 85, 75, 25);
RoutenplanerContentPane.add(tNach);
tNach.setBounds(150, 125, 75, 25);

//---- lsuche ----
lsuche.setText("Suche k\u00fcrzesten Weg von");
RoutenplanerContentPane.add(lsuche);
lsuche.setBounds(new Rectangle(new Point(15, 90), lsuche.getPreferredSize()));

//---- lnach ----
lnach.setText("nach");
RoutenplanerContentPane.add(lnach);
lnach.setBounds(117, 126, 24, lnach.getPreferredSize().height);

//---- bGo ----
bGo.setText("Go");
RoutenplanerContentPane.add(bGo);
bGo.setBounds(new Rectangle(new Point(180, 160), bGo.getPreferredSize()));

//---- bNeuestadt ----
bNeuestadt.setText("Neue Stadt");
RoutenplanerContentPane.add(bNeuestadt);
bNeuestadt.setBounds(15, 161, bNeuestadt.getPreferredSize().width, 23);

{ // compute preferred size
Dimension preferredSize = new Dimension();
for (int i = 0; i < RoutenplanerContentPane.getComponentCount(); i++) {
Rectangle bounds = RoutenplanerContentPane.getComponent(i).getBounds();
preferredSize.width = Math.max(bounds.x + bounds.width, preferredSize.width);
preferredSize.height = Math.max(bounds.y + bounds.height, preferredSize.height);
}
Insets insets = RoutenplanerContentPane.getInsets();
preferredSize.width += insets.right;
preferredSize.height += insets.bottom;
RoutenplanerContentPane.setMinimumSize(preferredSize);
RoutenplanerContentPane.setPreferredSize(preferredSize);
}
Routenplaner.setSize(695, 435);
Routenplaner.setLocationRelativeTo(Routenplaner.getOwner());
}
}

public void actionPerformed(ActionEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}

public void keyTyped(KeyEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}

public void keyPressed(KeyEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}

public void keyReleased(KeyEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}

public static void main(String[] args) {
new RoutenplanerGUI().setVisible(true);
}
}


[/code]
 

hdi

Top Contributor
Liegt an 2 Fehlern:

1) Du addest alle Komponenten auf dein RoutenPlanerContentPane, aber dieses wiederum addest du nicht zum Frame, d.h. es fehlt ein
Code:
this.add(RoutenPlanerContentPane);
am Ende.

2) setVisible muss man aufrufen nachdem alles geaddet wurde

PS: Du solltest dich an Namenskonventionen halten - Variablen beginnen mit einem kleinen Buchstaben.

PPS: Es ist ziemlich verwirrend dass du ein Objekt vom Typ RoutenPlaner hast namens "rp" und ein Objekt vom Typ JFrame namens "Routenplaner"... Bist du sicher dass du dieses JFrame überhaupt brauchst? Deine GUI-Klasse erbt ja schon von JFrame...

PPPS: Ich rate immer jedem von solchen GUI Tools ab. Schreib den Code lieber selber, dann ist er erstens schöner und zweitens verstehst du es dann auch. Es gibt Tutorials zu GUIs.
 
Zuletzt bearbeitet:

siser

Mitglied
danke. Jetzt gehts. War mit nicht bewusst das setVisible am Ende sein muss. Normalerweise rufe ich das mit der MainMethode auf also newClass.setVisible(true);
 

hdi

Top Contributor
Ja würde hier ja auch funktionieren da du es erst nach dem Konstruktoraufruf (also auch nach dem initComponents()) machst. Du kannst aber durchaus Komponenten ändern während das Frame sichtbar ist, allerdings musst du dann nach der Änderung ein
Code:
validate()
auf dem Frame aufrufen. Vllt sogar ein
Code:
revalidate()
oder ein
Code:
repaint()
.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D JavaFX (WebStart) Graues Fenster beim Start AWT, Swing, JavaFX & SWT 4
J Swing JCheckBox enabled, aber graues Kästchen AWT, Swing, JavaFX & SWT 2
B Graues Feld unter JComboBox AWT, Swing, JavaFX & SWT 2
M Jwindows nicht sichtbar (graues bild) AWT, Swing, JavaFX & SWT 9
N nur graues Fenster mit Swing AWT, Swing, JavaFX & SWT 16
H Thread und repaint ergeibt graues Fenster AWT, Swing, JavaFX & SWT 2
L paintComponent in Panel eines Borderlayouts hinzufügen AWT, Swing, JavaFX & SWT 3
A Problem Spiel auf Panel der GUI zu bringen AWT, Swing, JavaFX & SWT 1
CptK Ordentlicher Code & Panel ab bestimmter Komponentenzahl scrollbar machen AWT, Swing, JavaFX & SWT 12
B JTextField in Panel positionieren AWT, Swing, JavaFX & SWT 1
R Swing Panel nur bei Maus sichtbar AWT, Swing, JavaFX & SWT 2
B mit Maus verschiebbares Panel AWT, Swing, JavaFX & SWT 2
S Labels in Panel erstellen AWT, Swing, JavaFX & SWT 1
H Aus Array Container Panel an Tabbedpane zuweisen AWT, Swing, JavaFX & SWT 29
S Swing Panel wird nicht neu gezeichnet AWT, Swing, JavaFX & SWT 3
O Kann kei neues Panel zum zeichnen aufrufen... AWT, Swing, JavaFX & SWT 4
J Overlay Panel statt neues Fenster AWT, Swing, JavaFX & SWT 6
CptK Swing DropdownMenu über Panel-Grenzen hinaus anzeigen AWT, Swing, JavaFX & SWT 1
J Aufklappbares Panel in Toolbar AWT, Swing, JavaFX & SWT 6
L ActionListener zu Button in Panel hinzufügen AWT, Swing, JavaFX & SWT 10
S Swing Panel übernimmt komponenten von anderem AWT, Swing, JavaFX & SWT 7
J Panel auf Frame positionieren AWT, Swing, JavaFX & SWT 9
J JFrame Panel hinzufügen AWT, Swing, JavaFX & SWT 10
B AWT Panel größe im BorderLayout einstellen AWT, Swing, JavaFX & SWT 1
K Swing Entfernen von Panel funktioniert nicht AWT, Swing, JavaFX & SWT 5
L JavaFX Animation für Panel wechsel AWT, Swing, JavaFX & SWT 3
L Swing JTable im Panel darstellen AWT, Swing, JavaFX & SWT 8
L JavaFX Klickverhalten bei einem Panel AWT, Swing, JavaFX & SWT 1
A Swing Panel mit ScrollBar AWT, Swing, JavaFX & SWT 7
K Panel verdeckt MenuItem AWT, Swing, JavaFX & SWT 5
H zwei gleich große Panels getrennt durch ein weiteres Panel AWT, Swing, JavaFX & SWT 10
N Swing Label auf Panel legen.. AWT, Swing, JavaFX & SWT 2
J Panel auf Frame löschen und neues Panel Hinzufügen AWT, Swing, JavaFX & SWT 4
T Swing Graphics auf Panel AWT, Swing, JavaFX & SWT 2
B Swing WindowBuilde: Menu -> anderes Panel wechseln AWT, Swing, JavaFX & SWT 1
U Java FX Zusätzliches Label per Knopfdruck während der Laufzeit auf Panel einfügen. AWT, Swing, JavaFX & SWT 2
P AWT Panel überschreibt vorheriges... AWT, Swing, JavaFX & SWT 2
Thallius Swing Warum kann man Texte im Panel nicht markieren? AWT, Swing, JavaFX & SWT 1
S NetBeans, Panel in Frame einfügen AWT, Swing, JavaFX & SWT 3
M AWT Panel wird nicht angezeigt AWT, Swing, JavaFX & SWT 7
P Fenstergröße ändern, Panel soll gleich bleiben AWT, Swing, JavaFX & SWT 2
M JavaFX Slide Panel AWT, Swing, JavaFX & SWT 2
P Swing Panel nicht sichtbar AWT, Swing, JavaFX & SWT 1
M Swing JtextField Panel in ander Panel aufrufen AWT, Swing, JavaFX & SWT 0
M Panel in geerbter JFrame Klasse adden AWT, Swing, JavaFX & SWT 4
S ScrollPane in Textarea und auf Panel AWT, Swing, JavaFX & SWT 4
D Swing Bei Button Click neues Panel laden AWT, Swing, JavaFX & SWT 3
D Panel wird nicht angezeigt und Fragen zum CardLayout AWT, Swing, JavaFX & SWT 6
S Swing JMenu löscht auf panel gezeichnetes AWT, Swing, JavaFX & SWT 3
X Java Panel zeitweise repainten AWT, Swing, JavaFX & SWT 8
X Panel Probleme (Tetris) AWT, Swing, JavaFX & SWT 8
W Swing Nicht-Editierbares Textfeld in Panel in ScrollPane AWT, Swing, JavaFX & SWT 9
B zweidimensionales Buttonarray auf Panel AWT, Swing, JavaFX & SWT 11
F JAVA-EDITOR: Panel in Frame aufnehmen AWT, Swing, JavaFX & SWT 3
F textarea lässt panel verschwinden AWT, Swing, JavaFX & SWT 4
T LayoutManager GridLayout panel.setSize funktioniert nicht AWT, Swing, JavaFX & SWT 1
A Panel lässt sich nicht bewegen AWT, Swing, JavaFX & SWT 2
E Panel mit Leben füllen AWT, Swing, JavaFX & SWT 2
K Swing Maus in Panel einsperren AWT, Swing, JavaFX & SWT 8
D Panel in Panel zentriert nicht richtig AWT, Swing, JavaFX & SWT 3
P Swing Panel-austausch über einen MenuListener AWT, Swing, JavaFX & SWT 2
1 Swing Bestimme ob ein Subelement eines panel den Fokus verloren hat AWT, Swing, JavaFX & SWT 2
P Swing Button über gesamtes Panel AWT, Swing, JavaFX & SWT 2
O LayoutManager Panel in Panel "maximieren" AWT, Swing, JavaFX & SWT 2
C AWT Horizontale Linie in einem Panel AWT, Swing, JavaFX & SWT 12
T Über mehrere Panel zeichnen AWT, Swing, JavaFX & SWT 2
B Export eines Panel mit ScrollBar AWT, Swing, JavaFX & SWT 4
S Größe von Panel verändern welches auf anderem Panel sitzt AWT, Swing, JavaFX & SWT 10
bluerob Panel im BorderLayout South wird nicht angezeigt AWT, Swing, JavaFX & SWT 5
M Swing Panel klassenübergreifend ändern AWT, Swing, JavaFX & SWT 6
M Swing JFrame in einem Panel zeichnen AWT, Swing, JavaFX & SWT 3
A 2D-Grafik Panel inhalt löschen AWT, Swing, JavaFX & SWT 5
H Scroll Panel wird nicht hinzugefügt AWT, Swing, JavaFX & SWT 6
S Elemente im Panel in richtige Ausgangsstellung bringen AWT, Swing, JavaFX & SWT 10
X Swing Panel Extra Klasse & Aufruf über Button AWT, Swing, JavaFX & SWT 18
Kenan89 2D-Grafik paintComponent quetsch alles in Panel AWT, Swing, JavaFX & SWT 26
C Bild auf Panel vergrößern und verschieben AWT, Swing, JavaFX & SWT 4
C ImageIcon eines Labels auf einem Panel in neuem Fenster anzeigen AWT, Swing, JavaFX & SWT 2
H LayoutManager Panel verschieben sich AWT, Swing, JavaFX & SWT 5
O Swing JTree um Label (oder Panel) erweitern AWT, Swing, JavaFX & SWT 9
S Vaadin: Panel AWT, Swing, JavaFX & SWT 10
R paintComponent malt bei repaint() Rahmen um Panel AWT, Swing, JavaFX & SWT 7
C Etwas durchsichtig machen über einem Panel AWT, Swing, JavaFX & SWT 7
K Panel zu Laufzeit ändern AWT, Swing, JavaFX & SWT 6
T eigene Klasse für Panel AWT, Swing, JavaFX & SWT 9
D Panel aus externer Klasse holen AWT, Swing, JavaFX & SWT 2
L Swing dynamisches Image-Panel in Layout einbinden AWT, Swing, JavaFX & SWT 10
T Listener in anderen Panel deaktivieren AWT, Swing, JavaFX & SWT 3
H Verschiedene JPanels aus eigenen Klassen in JFrame einfügen, nur ein Panel sichtbar AWT, Swing, JavaFX & SWT 4
GUI-Programmer Informations-Panel an Label AWT, Swing, JavaFX & SWT 2
U Elemente im Panel zentrieren mit GridLayout AWT, Swing, JavaFX & SWT 3
J JPanel mit anderem Panel aus anderer Klasse setzen AWT, Swing, JavaFX & SWT 4
F 2D-Grafik Panel-Zeichnung erscheint nicht AWT, Swing, JavaFX & SWT 7
S Panel rapaint AWT, Swing, JavaFX & SWT 18
T AffineTransform wirkt sich nur auf dem ersten Panel aus AWT, Swing, JavaFX & SWT 3
K Swing: Panel in Panel erzeugen AWT, Swing, JavaFX & SWT 11
M Panel in SWT einfügen AWT, Swing, JavaFX & SWT 12
T auf Panel zeichnen AWT, Swing, JavaFX & SWT 4
A FormLayout Panel-Breite AWT, Swing, JavaFX & SWT 7
Dit_ "Expandable" Panel ? AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen


Oben