Swing Komponenten genauer anordnen.

DaCrazyJavaExpert

Bekanntes Mitglied
Hallo,
in versuche einen CookieClicker zu programmieren. Da schaffe ich es allerdings nicht so, wie ich mir das vorstellle die Komponenten anzuordnen. Hier der Code:
Java:
public class CookieClickerGUI extends JFrame {
    public CookieClickerGUI() {
        super("Cookie Clicker");
        this.setLocation(300, 150);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.initialisiereKomponenten();
        this.ordneKomponenentenInJPanelOverlay();
        this.ordneKomponenentenInPanelCookie();
        this.ordneKomponenentenInPanelCookieShop();
        this.setSize(820, 500);
    }
   
    private JPanelOverlay panelOverlay;
    private JPanel panelCookie;
    private JPanel panelAnzeige;
    private JPanel panelCookieShop;
    private ImageIcon iconCookie;
    private JLabel labelCookie;
    private JLabel labelAnzahlCookies;
    private JLabel labelCookiesProKlick;
    private JLabel labelCookieShop;
    //Layouts
    private BorderLayout borderLayoutCookie;
    private BorderLayout borderLayoutCookieShop;
    private FlowLayout flowLayoutCookieWerte;
   
    private void initialisiereKomponenten() {
        this.iconCookie = new ImageIcon("images/CookieClickerCookie.png");
        this.panelOverlay = new JPanelOverlay();
        this.panelOverlay.setOpaque(false);
        this.panelCookie = new JPanel();
        this.panelCookie.setOpaque(false);
        this.panelAnzeige = new JPanel();
        this.panelAnzeige.setOpaque(false);
        this.panelCookieShop = new JPanel();
        this.panelCookieShop.setOpaque(false);
        this.labelCookie = new JLabel(this.iconCookie);
        this.labelCookie.setOpaque(false);
        this.labelAnzahlCookies = new JLabel("0");
        this.labelAnzahlCookies.setOpaque(false);
        this.labelCookiesProKlick = new JLabel("1");
        this.labelCookiesProKlick.setOpaque(false);
        this.labelCookieShop = new JLabel("Cookie Shop");
        this.labelCookieShop.setOpaque(false);
       
        //Layouts initialization
        this.borderLayoutCookie = new BorderLayout();
        this.borderLayoutCookieShop = new BorderLayout();
        this.flowLayoutCookieWerte = new FlowLayout();
    }
    private void ordneKomponenentenInPanelCookie() {
        this.panelAnzeige.setLayout(flowLayoutCookieWerte);
        flowLayoutCookieWerte.setHgap(150);
        flowLayoutCookieWerte.setVgap(10);
        this.panelAnzeige.add(this.labelCookiesProKlick);
        this.panelAnzeige.add(this.labelAnzahlCookies);
       
        this.panelCookie.setLayout(borderLayoutCookie);
        borderLayoutCookie.setHgap(200);
        borderLayoutCookie.setVgap(150);
        this.panelCookie.add(this.labelCookie, BorderLayout.CENTER);
        this.panelCookie.add(this.panelAnzeige, BorderLayout.NORTH);
    }
   
    private void ordneKomponenentenInJPanelOverlay() {
        this.panelOverlay.setLayout((new GridBagLayout()));
        GridBagConstraints c = new GridBagConstraints();
       
        c.fill = GridBagConstraints.HORIZONTAL;
        c.insets = new Insets(5, 5, 5, 5);
        c.weightx = 1;
        c.weighty = 1;
        c.gridx = 0;
        c.gridy = 0;
        this.panelOverlay.add(this.panelCookie, c);
       
        c.gridx = 1;
        this.panelOverlay.add(this.panelCookieShop, c);
       
        this.getContentPane().add(this.panelOverlay);
    }
    private void ordneKomponenentenInPanelCookieShop() {
        this.panelCookieShop.setLayout(borderLayoutCookieShop);
        borderLayoutCookieShop.setHgap(300);
        borderLayoutCookieShop.setVgap(343);
        this.panelCookieShop.add(labelCookieShop, BorderLayout.NORTH);
        this.panelCookieShop.add(new JLabel("Auswähloptionen"), BorderLayout.CENTER);
    }
   
    public void start() {
        this.setVisible(true);
    }
}
Eigentlich will ich die Komponenten so haben, am roten "PUNKT" wird die gewünschte Stelle der jeweiligen Komponenten verdeutlicht:


Ich hoffe ihr könnt mir weiterhelfen. Danke im vorraus.
 

Salmo Salar

Mitglied
Wenn du eine schnelle Antwort brauchst: Man kann das Layout auf null setzen und alles per Hand platzieren. Nachteil: Beim ändern der Fenstergröße und des Monitors kann es sehr blöd aussehen (habe ich gehört).
 

DaCrazyJavaExpert

Bekanntes Mitglied
Ok ... danke. Mit setBounds() ? oder gibts da noch ne andere Methode. Mein Fenster kann eh nicht in der größe geändert werden... weshalb mir egal wäre wie dass GUI mit maximiertem Bild aussieht.
 

Salmo Salar

Mitglied
Ich hatte gehofft, jemand anderes antwortet in der Zwischenzeit... Ich habe nochmal versucht deinen Quellcode zu verstehen, aber was ist JPanelOverlay? Kennt Google nicht:) Und warum hast du drei Panels? Ich sehe zwei auf dem Bild. Kann es sein, dass dein linkes Panel nicht in der Mitte endet? Vielleicht ist der Cookie ja wirklich in der Mitte. Oder er rechnet ab der oberen linken Ecke. Vergrößer das Fenster und schau was passiert. Das Nulllayout ist wirklich der Hammer auf die Schraube. Wenn du den kompletten Code reinstellst kann ich testen (und CookieClicker spielen)
 

DaCrazyJavaExpert

Bekanntes Mitglied
aber was ist JPanelOverlay?
Ich glaub es wird schwer sein dies in Google zu finden :p:
Java:
public class JPanelOverlay extends JPanel {

    private BufferedImage gameBackground;
  
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        this.gameBackground = null;
        try {
            this.gameBackground = ImageIO.read(new File("images/GrundCookieClicker.png"));
        } catch (IOException e) {
            System.err.println("Das Bild konnte nicht gefunden werden.");
        }
        g.drawImage(this.gameBackground, 0, 0, this);
    }
}
Wenn du den kompletten Code reinstellst kann ich testen (und CookieClicker spielen)
Ich glaub das wird noch nicht möglich sein, da ich noch keine Events miteingebracht habe. Sitze bisher nur an der GUI.
Ich hab mich nun aber doch dazu entschieden die Komponenten mit "Hand" zu setzen, wie sollte ich das angehen? Mit setBounds() oder gibts noch andere (sinnvollere) Methoden? Danke weiterhin :).

PS: Code schicke ich eventuell später ein, wenn ich nicht weiterkomme, mit dem Komponenten setzen. :)
 
Zuletzt bearbeitet:

Robat

Top Contributor
Ich würde es nicht mit dem NULL-Layout machen.
Mit der richtigen Kombination aus den existierenden Layout-Managern kann man eigentlich jedes Layout gestallten.
Solltest du ein "statisches" Layout, wollen könnte man es wie im Spoiler machen.
Java:
////////////////////////////////////////////////////////////////////////////
// Constances
////////////////////////////////////////////////////////////////////////////
private final static String FILE_NAME = "CookieClicker";

private static final int DISPLAY_WIDTH = 1200;
private static final int DISPLAY_HEIGHT = 700;

private static final int DIVIDER_LOCATION = DISPLAY_WIDTH / 2;

private static final Color BACKGROUNDCOLOR = Color.BLUE;

////////////////////////////////////////////////////////////////////////////
// Fields
////////////////////////////////////////////////////////////////////////////
private JFrame frame;

private JPanel contentPane;
private JPanel leftPanel;
private JPanel rightPanel;

private JSplitPane contentSplitPane;

private JLabel lblCookiePerClick;
private JLabel lblCookieAmount;

private JLabel lblShop;
private JLabel lblOptions;

private JLabel lblCookie;

////////////////////////////////////////////////////////////////////////////
// Constructor
////////////////////////////////////////////////////////////////////////////
public CookieClicker()
{
    frame = createJFrame();

    contentPane = new JPanel();
    contentPane.setLayout(new BorderLayout());
    contentPane.setBackground(BACKGROUNDCOLOR);

    leftPanel = createLeftPanel();
    rightPanel = createRightPanel();

    contentSplitPane = createContentSplitPane();

    contentPane.add(contentSplitPane, BorderLayout.CENTER);
    frame.add(contentPane);
    frame.setVisible(true);
}

////////////////////////////////////////////////////////////////////////////
// Methods
////////////////////////////////////////////////////////////////////////////
private JFrame createJFrame()
{
    JFrame localFrame = new JFrame("Cookie Clicker");
    localFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    localFrame.setMinimumSize(new Dimension(DISPLAY_WIDTH, DISPLAY_HEIGHT));
    localFrame.setPreferredSize(new Dimension(DISPLAY_WIDTH, DISPLAY_HEIGHT));
    localFrame.setMaximumSize(new Dimension(DISPLAY_WIDTH, DISPLAY_HEIGHT));
    localFrame.setResizable(false);
    localFrame.setLocationRelativeTo(null);

    return localFrame;
}

private JSplitPane createContentSplitPane()
{
    JSplitPane localSplitPane = new JSplitPane();

    localSplitPane.setDividerSize(0);
    localSplitPane.setDividerLocation(DIVIDER_LOCATION);
    localSplitPane.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
    localSplitPane.setLeftComponent(leftPanel);
    localSplitPane.setRightComponent(rightPanel);

    return localSplitPane;
}

private JPanel createLeftPanel()
{
    JPanel localLeftPanel = new JPanel();
    localLeftPanel.setBackground(BACKGROUNDCOLOR);
    localLeftPanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 20, 0));
    localLeftPanel.setLayout(new BoxLayout(localLeftPanel, BoxLayout.PAGE_AXIS));

    JPanel statusLinePanel = new JPanel(new GridBagLayout());
    statusLinePanel.setOpaque(false);

    GridBagConstraints gbc = new GridBagConstraints();
    gbc.weightx = 1;

    lblCookieAmount = createLabelWithText("0");
    statusLinePanel.add(lblCookieAmount, gbc);

    lblCookiePerClick = createLabelWithText("1");
    statusLinePanel.add(lblCookiePerClick, gbc);

    localLeftPanel.add(statusLinePanel);

    localLeftPanel.add(Box.createRigidArea(new Dimension(5, DISPLAY_HEIGHT / 4)));

    lblCookie = createLabelWithImage("cookie.png");
    lblCookie.setAlignmentX(Component.CENTER_ALIGNMENT);
    localLeftPanel.add(lblCookie);

    return localLeftPanel;
}

private JPanel createRightPanel()
{
    JPanel localRightPanel = new JPanel();

    localRightPanel.setBackground(BACKGROUNDCOLOR);
    localRightPanel.setLayout(new BoxLayout(localRightPanel, BoxLayout.PAGE_AXIS));
    localRightPanel.setBorder(BorderFactory.createEmptyBorder(75, 10, 10, 10));

    lblShop = createLabelWithText("Cookie Shop");
    localRightPanel.add(lblShop);

    localRightPanel.add(Box.createRigidArea(new Dimension(5, DISPLAY_HEIGHT - DISPLAY_HEIGHT / 3)));

    lblOptions = createLabelWithText("Auswähloptionen");
    localRightPanel.add(lblOptions);

    return localRightPanel;
}

private JLabel createLabelWithImage(String img)
{
    ImageIcon icon = new ImageIcon(ImageLoader.load("cookie.png"));
    JLabel localLabel = new JLabel(icon);
    localLabel.setOpaque(false);

    return localLabel;
}

private JLabel createLabelWithText(String title)
{
    JLabel localLabel = new JLabel(title);
    localLabel.setForeground(Color.WHITE);
    localLabel.setHorizontalAlignment(SwingConstants.CENTER);
    localLabel.setAlignmentX(Component.CENTER_ALIGNMENT);

    return localLabel;
}

public static void main(String[] args)
{

    SwingUtilities.invokeLater(() -> new CookieClicker());
}
Ich würde nie behaupten dass das die optimale Lösung für dein Problem ist. Dennoch ist sie, mMn auf jeden Fall, eine gute alternative zum NULL-Layout.

Gruß Robert

PS: ImageLoader ist eine Util-Klasse von mir. Müsstest es dann so anpassen wie du dein Bild lädts ;)
 

DaCrazyJavaExpert

Bekanntes Mitglied
Hallo, danke für diese Vorlage. Dazu hab ich ein paar Fragen. Ist das JSplitPane unsichtbar (?), soweit ich weiß nämlich nicht. Gibt es eine Möglichkeite es unsichtbar zu machen oder das Design davon zu verändern? Weil ich möchte eigentlich ungern ein JSplitPane auf meinem GUI haben. Aber das comfortable daran ist halt, dass man die Panel gun nebeneinander anordnen kann. :)
Ok zur zweiten Frage: Was macht diese Zeile Code genau? Das hab ich mir nicht genau erschließen können.
Java:
lblCookie.setAlignmentX(Component.CENTER_ALIGNMENT);
Zu meiner letzten Frage: Dieser Code in der main():
Java:
SwingUtilities.invokeLater(() -> new CookieClicker());
Was macht er und und was ist SwingUtilies? Hab es mit Google nicht genau herausfinden können... hab nur irgendwie gelesen, dass es irgendwas mit Threads zu tun hat. Das mit diesen Pfeilen ist doch neu in Java 8!? Lamda Ausdrücke oder so ähnlich, oder?

Das waren meine Fragen zum Code, den Rest hab ich mir erschließen können, oder in Google die Erklärung dazu gefunden.
Wenn ich diese Fragen nun alle durch hab, werd ich mal Versuchen mein GUI mit Hilfe @Robat Quelltextes zu vervollständigen/überarbeiten. Ich sollte mir, denke ich, echt mal ein neues Buch holen, weil mit diesen ganzen Klassen und Konstanten, usw... kenne ich mich noch gar nicht aus.
Danke bis hierher für die ganzen Tipps und Anworten.
 

Robat

Top Contributor
Ist das JSplitPane unsichtbar (?)
Wenn du damit den Divider in der Mitte meinst - nein, der ist nicht sichtbar. (kannst aber auch einfach ausprobieren, dann siehst du es :p )

Was macht diese Zeile Code genau?
So trivial es auch klingen mag: Es setzt die vertikale Ausrichtung auf "center". Der Cookie ist also vertikal mittig gesetzt.

Was macht er und und was ist SwingUtilies?
SwingUtilities ist eine Klasse. Was die Methode invokeLater() macht kannst du im JavaDoc nachlesen.
 

DaCrazyJavaExpert

Bekanntes Mitglied
Ok danke für die Anworten. Nun hab ich deinen Code sozusagen in meinen "eingebracht". Aber der Compiler spuckt eine NullPointerException, nach dem starten des Programms aus. Mein jetztiger Code:
Java:
public class CookieClickerGUI extends JFrame {
    public CookieClickerGUI() {
        super("Cookie Clicker");
        this.setLocation(300, 150);
        this.setResizable(false);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.leftPanel = createPanelCookie();
        this.rightPanel = createPanelCookieShop();
        this.splitPane = createSplitPaneSplitter();
        this.initialisiereKomponenten();
        this.ordneKompotentenInPanelOverlay();
        this.setSize(810, 488);
    }

    private JPanelOverlay panelOverlay;
    private JPanel panelCookie;
    private JPanel panelCookieShop;
    private JSplitPane splitPaneSplitter;
    private ImageIcon iconCookie;
    private JLabel labelCookie;
    private JLabel labelAnzahlCookies;
    private JLabel labelCookiesProKlick;
    private JLabel labelCookieShop;
    private JPanel panelAnzeige;
    // Splits/Panels
    private JPanel leftPanel;
    private JPanel rightPanel;
    private JSplitPane splitPane;

    private void initialisiereKomponenten() {
        this.iconCookie = new ImageIcon("images/CookieClickerCookie.png");
        this.panelOverlay = new JPanelOverlay();
        this.panelOverlay.setOpaque(false);
        this.panelCookie = new JPanel();
        this.panelCookie.setOpaque(false);
        this.panelCookieShop = new JPanel();
        this.panelCookieShop.setOpaque(false);
        this.splitPaneSplitter = new JSplitPane();
        this.labelCookie = new JLabel(this.iconCookie);
        this.labelCookie.setOpaque(false);
        this.labelAnzahlCookies = new JLabel("0");
        this.labelAnzahlCookies.setOpaque(false);
        this.labelCookiesProKlick = new JLabel("1");
        this.labelCookiesProKlick.setOpaque(false);
        this.labelCookieShop = new JLabel("Cookie Shop");
        this.labelCookieShop.setOpaque(false);
        this.panelAnzeige = new JPanel();
        this.panelAnzeige.setOpaque(false);
    }

    private JPanel createPanelCookie() {

        this.panelCookie.setLayout(new BoxLayout(this.panelCookie, BoxLayout.PAGE_AXIS));

        this.panelAnzeige.setLayout(new GridBagLayout());

        GridBagConstraints gbc = new GridBagConstraints();
        gbc.weightx = 1;
        this.panelAnzeige.add(labelCookiesProKlick, gbc);
        this.panelAnzeige.add(labelAnzahlCookies, gbc);

        this.panelCookie.add(this.panelAnzeige);
        this.panelCookie.add(Box.createRigidArea(new Dimension(5, 488 / 4)));
        this.labelCookie.setAlignmentX(CENTER_ALIGNMENT);
        this.panelCookie.add(this.labelCookie);

        return this.panelCookie;
    }

    private JPanel createPanelCookieShop() {
        this.panelCookieShop.setLayout(new BoxLayout(this.panelCookieShop, BoxLayout.PAGE_AXIS));
        this.panelCookieShop.add(this.labelCookieShop);
        this.panelCookieShop.add(Box.createRigidArea(new Dimension(5, 488 - 488 / 4)));
        return this.panelCookieShop;
    }

    private JSplitPane createSplitPaneSplitter() {
        this.splitPaneSplitter.setDividerSize(0);
        this.splitPaneSplitter.setDividerLocation(488 / 2);
        this.splitPaneSplitter.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
        this.splitPaneSplitter.setLeftComponent(this.leftPanel);
        this.splitPaneSplitter.setRightComponent(this.rightPanel);

        return splitPaneSplitter;
    }

    private void ordneKompotentenInPanelOverlay() {
        this.panelOverlay.add(this.splitPane);
        this.getContentPane().add(this.panelOverlay);
    }

    public void start() {
        this.setVisible(true);
    }
}
//########################################################################################
//JPanelOverlay ist diese Klasse hier:
public class JPanelOverlay extends JPanel {

    private BufferedImage gameBackground;
   
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        this.gameBackground = null;
        try {
            this.gameBackground = ImageIO.read(new File("images/GrundCookieClicker.png"));
        } catch (IOException e) {
            System.err.println("Das Bild konnte nicht gefunden werden.");
        }
        g.drawImage(this.gameBackground, 0, 0, this);
    }
}
//Das Programm wird im der Main-Klasse mit meiner start()-Methode, über eine Inztanz der GUI Klasse ausgeführt.

Ich hab schon in der besagten Zeile nachgescht, finde aber keinen Fehler, hier die Fehlermeldung:
Exception in thread "main" java.lang.NullPointerException
at de.m_ver.cookieclicker.game.CookieClickerGUI.createPanelCookie(CookieClickerGUI.java:68)
at de.m_ver.cookieclicker.game.CookieClickerGUI.<init>(CookieClickerGUI.java:22)
at de.m_ver.cookieclicker.main.Main.main(Main.java:8)

Danke!
 

fhoffmann

Top Contributor
Du solltest im Konstruktor
Java:
this.initialisiereKomponenten();
vor
Java:
createPanelCookie();
aufrufen.
 

DaCrazyJavaExpert

Bekanntes Mitglied
Oh Gott, danke... Manchmal frag ich mich echt wie ich auf sowas nicht komme. :( Naja. Jetzt hab ich es aufjedenfall geschafft das Frame wieder anzeigenzulassen. Allerdings wird nicht so das angezeigt, was meinen Erwartungen entsprach. Der Code jetzt nochmal, überaurbeitet (hab noch ein Fehler, seit der letzten Code-Einsendung gefunden):
Java:
public class CookieClickerGUI extends JFrame {
    public CookieClickerGUI() {
        super("Cookie Clicker");
        this.setLocation(300, 150);
        this.setResizable(false);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.initialisiereKomponenten();
        this.leftPanel = createPanelCookie();
        this.rightPanel = createPanelCookieShop();
        this.splitPane = createSplitPaneSplitter();
        this.initialisiereKomponenten();
        this.ordneKompotentenInPanelOverlay();
        this.setSize(this.SIZE_WHIGHT, this.SIZE_HIGH);
    }

    private final int SIZE_WHIGHT = 810;
    private final int SIZE_HIGH = 488;
    private final int SPLITPANE_LOCATION = SIZE_WHIGHT / 2;
    private final int BOX_LOCATION = SIZE_WHIGHT - SIZE_WHIGHT / 4;
   
    private JPanelOverlay panelOverlay;
    private JPanel panelCookie;
    private JPanel panelCookieShop;
    private JSplitPane splitPaneSplitter;
    private ImageIcon iconCookie;
    private JLabel labelCookie;
    private JLabel labelAnzahlCookies;
    private JLabel labelCookiesProKlick;
    private JLabel labelCookieShop;
    private JPanel panelAnzeige;
    // Splits/Panels
    private JPanel leftPanel;
    private JPanel rightPanel;
    private JSplitPane splitPane;

    private void initialisiereKomponenten() {
        this.iconCookie = new ImageIcon("images/CookieClickerCookie.png");
        this.panelOverlay = new JPanelOverlay();
        this.panelOverlay.setOpaque(false);
        this.panelCookie = new JPanel();
        this.panelCookie.setOpaque(false);
        this.panelCookieShop = new JPanel();
        this.panelCookieShop.setOpaque(false);
        this.splitPaneSplitter = new JSplitPane();
        this.labelCookie = new JLabel(this.iconCookie);
        this.labelCookie.setOpaque(false);
        this.labelAnzahlCookies = new JLabel("0");
        this.labelAnzahlCookies.setOpaque(false);
        this.labelCookiesProKlick = new JLabel("1");
        this.labelCookiesProKlick.setOpaque(false);
        this.labelCookieShop = new JLabel("Cookie Shop");
        this.labelCookieShop.setOpaque(false);
        this.panelAnzeige = new JPanel();
        this.panelAnzeige.setOpaque(false);
    }

    private JPanel createPanelCookie() {

        this.panelCookie.setLayout(new BoxLayout(this.panelCookie, BoxLayout.PAGE_AXIS));

        this.panelAnzeige.setLayout(new GridBagLayout());

        GridBagConstraints gbc = new GridBagConstraints();
        gbc.weightx = 1;
        this.panelAnzeige.add(labelCookiesProKlick, gbc);
        this.panelAnzeige.add(labelAnzahlCookies, gbc);

        this.panelCookie.add(this.panelAnzeige);
        this.panelCookie.add(Box.createRigidArea(new Dimension(5, this.BOX_LOCATION)));
        this.labelCookie.setAlignmentX(CENTER_ALIGNMENT);
        this.panelCookie.add(this.labelCookie);

        return this.panelCookie;
    }

    private JPanel createPanelCookieShop() {
        this.panelCookieShop.setLayout(new BoxLayout(this.panelCookieShop, BoxLayout.PAGE_AXIS));
        this.panelCookieShop.add(this.labelCookieShop);
        this.panelCookieShop.add(Box.createRigidArea(new Dimension(5, 488 - 488 / 4)));
        return this.panelCookieShop;
    }

    private JSplitPane createSplitPaneSplitter() {
        this.splitPaneSplitter.setDividerSize(0);
        this.splitPaneSplitter.setDividerLocation(this.SPLITPANE_LOCATION);
        this.splitPaneSplitter.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
        this.splitPaneSplitter.setLeftComponent(this.leftPanel);
        this.splitPaneSplitter.setRightComponent(this.rightPanel);

        return splitPaneSplitter;
    }

    private void ordneKompotentenInPanelOverlay() {
        this.panelOverlay.add(this.splitPane);
        this.getContentPane().add(this.panelOverlay);
    }

    public void start() {
        this.setVisible(true);
    }
}
Und so sieht das Frame grade aus:


Und so soll es aussehen(mit GIMP erstellt):
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Swing Komponenten nicht sichtbar nach Start AWT, Swing, JavaFX & SWT 12
H Fehler: Zum Ausführen dieser Anwendung benötigte JavaFX-Runtime-Komponenten fehlen AWT, Swing, JavaFX & SWT 44
H Swing , GridLayout, Größenbestimmung der Komponenten im Layout AWT, Swing, JavaFX & SWT 8
BabySuna Swing Komponenten auslagern auf separate Datei AWT, Swing, JavaFX & SWT 8
B Mit ContentPane werden Komponenten angezeigt, mit SplitPane, JPanel nicht? AWT, Swing, JavaFX & SWT 6
P AWT Einzelne Komponenten zur Laufzeit austauschen? AWT, Swing, JavaFX & SWT 3
D [Swing] Anordnung von Komponenten mit GridLayout Manager AWT, Swing, JavaFX & SWT 13
L Komponenten eines Panels werden erst nach Klick darauf angezeigt AWT, Swing, JavaFX & SWT 13
E Komponenten von JScrollPane werden nicht richtig ermittelt AWT, Swing, JavaFX & SWT 2
F Gebundene Eigenschaften bei Komponenten mit NetBeans verarbeiten AWT, Swing, JavaFX & SWT 3
H LayoutManager Probleme mit Positionierung/Abständen der Komponenten AWT, Swing, JavaFX & SWT 14
dereki2000 Swing JFrame nah hinzufügen von Komponenten akualisieren. AWT, Swing, JavaFX & SWT 2
L Swing Komponenten erst nach Resize sichtbar AWT, Swing, JavaFX & SWT 2
S Swing Panel übernimmt komponenten von anderem AWT, Swing, JavaFX & SWT 7
T Reihenfolge der Komponenten im einem JFrame AWT, Swing, JavaFX & SWT 8
P Gleichmäßige Anodnung von Komponenten im migLayout AWT, Swing, JavaFX & SWT 2
DaCrazyJavaExpert Swing Komponenten in GridBagLayout werden Falsch angeordnet AWT, Swing, JavaFX & SWT 1
P Größe und Ausrichtung von Komponenten festlegen AWT, Swing, JavaFX & SWT 13
MaxG. Swing Swing Komponenten zur Laufzeit hinzufügen AWT, Swing, JavaFX & SWT 2
D Swing Komponenten Anordnung eines Panels in Verbindung eines weiteren Panels AWT, Swing, JavaFX & SWT 9
N Swing Wie Programm strukturieren? (Dynamisch Komponenten hinzufügen) AWT, Swing, JavaFX & SWT 1
Neumi5694 LookAndFeel Look & Feel nicht angezeigter Komponenten ändern AWT, Swing, JavaFX & SWT 6
D JavaFX GUI Komponenten werden langsam bei größerer Datenmenge AWT, Swing, JavaFX & SWT 6
R Komponenten von JPanel bleiben unsichtbar AWT, Swing, JavaFX & SWT 2
D JavaFX Welche Komponenten vermisst ihr? Welche wären essenziell notwendig? AWT, Swing, JavaFX & SWT 8
M Datei mit Komponenten einbinden AWT, Swing, JavaFX & SWT 7
T SWT Externer zugrif auf SWT Komponenten AWT, Swing, JavaFX & SWT 3
Shams Probleme bei dem Hinzufügen von Komponenten zu einem JFrame AWT, Swing, JavaFX & SWT 3
J MouseOver bei Komponenten AWT, Swing, JavaFX & SWT 9
S Größe der Komponenten, beim ändern der größe des Frames, mit ändern! AWT, Swing, JavaFX & SWT 2
D LayoutManager GUI skalieren und deren Komponenten mit Grid(Bag)Layout-Manager. AWT, Swing, JavaFX & SWT 5
G Komponenten vergrößern sich nicht trotz Layoutmanager AWT, Swing, JavaFX & SWT 24
M JavaFX Scenebuilder eigene Komponenten AWT, Swing, JavaFX & SWT 8
A Swing per JComboBox gewünschtes Attribut auswählen und Komponenten passen sich an AWT, Swing, JavaFX & SWT 7
A JavaFX Eigene Komponenten im Scene Builder AWT, Swing, JavaFX & SWT 0
Q Swing Fenster updaten - Hinzugefügte Komponenten darstellen AWT, Swing, JavaFX & SWT 3
S BoxLayout: Anordnung der Komponenten links statt zentriert AWT, Swing, JavaFX & SWT 0
Bartertown JTable - Verschiedene Komponenten in einer Spalte unterbringen AWT, Swing, JavaFX & SWT 3
U Frame zeigt keine Komponenten AWT, Swing, JavaFX & SWT 7
G Applet Applet Komponenten flackern AWT, Swing, JavaFX & SWT 10
K LayoutManager Probleme mit 2 Komponenten AWT, Swing, JavaFX & SWT 9
M Komponenten übereinander AWT, Swing, JavaFX & SWT 7
R Komponenten werden erst nach maximierung des Frames sichtbar (Linux) AWT, Swing, JavaFX & SWT 5
H Swing Getter für GUI-Komponenten AWT, Swing, JavaFX & SWT 3
B Komponenten in Fenster verdrängen sich untereinander AWT, Swing, JavaFX & SWT 6
N Komponenten übereinander AWT, Swing, JavaFX & SWT 3
S Anordnung von GUI-Komponenten mit LayouManger (Problem beim anzeigen von JTextField) AWT, Swing, JavaFX & SWT 5
M Swing Komponenten enablen? AWT, Swing, JavaFX & SWT 4
X Java Komponenten jeder Zeit hinzufügen können AWT, Swing, JavaFX & SWT 3
S View-Komponenten im Controller bekannt machen AWT, Swing, JavaFX & SWT 7
D Grafische Komponenten komplett neu aufbauen (Neukonstruktion) AWT, Swing, JavaFX & SWT 5
A AWT Komponenten in JavaFX einbetten AWT, Swing, JavaFX & SWT 9
M Swing Komponenten erscheinen beim darüberfahren? AWT, Swing, JavaFX & SWT 7
H Komponenten unmittelbar nach dem Ausführen teilweise unsichtbar AWT, Swing, JavaFX & SWT 3
K GUI in Komponenten aufteilen (MVC) AWT, Swing, JavaFX & SWT 2
W Funktionen, sowie aufruf einiger Komponenten AWT, Swing, JavaFX & SWT 4
J Alle Komponenten eines JFrames durchlaufen AWT, Swing, JavaFX & SWT 2
R Swing Komponenten bleiben bei Animation unsichtbar AWT, Swing, JavaFX & SWT 7
T Unter JPanel liegende Komponenten "totschalten" AWT, Swing, JavaFX & SWT 5
morphesus Swing Komponenten werden nicht angezeigt AWT, Swing, JavaFX & SWT 8
C Swing Reihenfolge der Initialisierung von Komponenten AWT, Swing, JavaFX & SWT 6
Asamandra LayoutManager GridBagLayout - Komponenten (mit fill?) vergrößern aber Proportionen dabei erhalten? AWT, Swing, JavaFX & SWT 3
B Swing Komponenten auf JApplet setSize AWT, Swing, JavaFX & SWT 7
B Swing Komponenten auf JApplet setSize AWT, Swing, JavaFX & SWT 2
W Bildgröße automatisch an Komponenten anpassen AWT, Swing, JavaFX & SWT 3
TheWhiteShadow Swing Komponenten organisieren AWT, Swing, JavaFX & SWT 9
S Überlappung zweier Komponenten AWT, Swing, JavaFX & SWT 12
Z größe der komponenten bestimmen AWT, Swing, JavaFX & SWT 16
C GUI-Komponenten skalieren AWT, Swing, JavaFX & SWT 10
M Seltsames Problem mit Resize eines Fensters und seiner Komponenten AWT, Swing, JavaFX & SWT 2
D Swing Komponenten verstecken AWT, Swing, JavaFX & SWT 4
X Swing Resizing der Komponenten innheralb eines Panels AWT, Swing, JavaFX & SWT 2
T Swing Font für alle Komponenten ändern AWT, Swing, JavaFX & SWT 2
S Problem mit Swing Komponenten AWT, Swing, JavaFX & SWT 11
A Swing Alle Komponenten auf JFrame ermitteln AWT, Swing, JavaFX & SWT 4
E LookAndFeel Eigene Komponenten mit Synth L&F stylen AWT, Swing, JavaFX & SWT 2
S Swing Frame und Klasse extends JPanel - Komponenten zur Laufzeit austauschen AWT, Swing, JavaFX & SWT 18
S JButton und textfield.setText - Komponenten über-/verdecken sich AWT, Swing, JavaFX & SWT 15
M Komponenten übereinander prüfen AWT, Swing, JavaFX & SWT 3
W LayoutManager GridBag richtig nutzen - Komponenten richtig anordnen und automatisch vergrößern AWT, Swing, JavaFX & SWT 5
M Komponenten in anderer Reihenfolge anzeigen AWT, Swing, JavaFX & SWT 4
G swing Komponenten verrutschen ständig... AWT, Swing, JavaFX & SWT 6
D Mit GridBayLayout Komponenten anordnen AWT, Swing, JavaFX & SWT 6
N Window transparent, Komponenten nicht transparent AWT, Swing, JavaFX & SWT 11
R Farbänderung von Komponenten wird nicht wirksam AWT, Swing, JavaFX & SWT 7
P Swing Hierachie oder Reihenfolge von Komponenten AWT, Swing, JavaFX & SWT 5
T Sich überlappende Komponenten AWT, Swing, JavaFX & SWT 2
D Swing Probleme beim Anzeigen der einzelnen Komponenten AWT, Swing, JavaFX & SWT 16
R Swing Komponenten klein angezeigt AWT, Swing, JavaFX & SWT 10
D Swing Swing Komponenten verschieben AWT, Swing, JavaFX & SWT 7
B Komponenten nach Skalierung nicht mehr ansprechbar AWT, Swing, JavaFX & SWT 9
Kr0e AWT Komponenten in JPanel AWT, Swing, JavaFX & SWT 6
JuliaOne Komponenten innerhalb eine JScrollpane werden auch ausserhalb davon gezeichnet! AWT, Swing, JavaFX & SWT 7
xehpuk Swing Komponenten werden durch setFont() winzig AWT, Swing, JavaFX & SWT 3
O Größe von Komponenten im JFrame manuell verändern AWT, Swing, JavaFX & SWT 2
H Komponenten anwendugsweit formatieren AWT, Swing, JavaFX & SWT 6
M Swing Komponenten mit fester Größe an Fensterrand(JFrame) AWT, Swing, JavaFX & SWT 2
A Komponenten zur Laufzeit entfernen AWT, Swing, JavaFX & SWT 3
Weiti Swing Animationen - Drehung aller Komponenten auf Knopfdruck AWT, Swing, JavaFX & SWT 12
P LayoutManager Komponenten einfügen (FlowLayout, BoxLayout) AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben