Mit ContentPane werden Komponenten angezeigt, mit SplitPane, JPanel nicht?

_brina205

Mitglied
Ich muss bei einer Aufgabe für mein Studium einen Pizza Konfigurator erstellen:
Meine Hauptklasse sieht so aus:
Java:
package view;

import Model.PizzaSize;
import Model.PizzaTopping;

import javax.swing.*;
import java.awt.*;

public class PizzaKonfigurator extends JFrame {

    private JComboBox pizzaSize;
    private  ImageIcon pizza;

    public PizzaKonfigurator() {
        super("Pizzakonfigurator");
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setSize(500, 400);

        //Menubar
        MyMenuBar myMenuBar = new MyMenuBar();
        setJMenuBar(myMenuBar);

        //ContentPane aufteilen
       // Container contentpane = getContentPane();
        PizzaKonfigPanel konfigPanel1 = new PizzaKonfigPanel(new GridBagLayout());
        PizzaKonfigPanel konfigPanel2 = new PizzaKonfigPanel(new BorderLayout());
        JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, konfigPanel1, konfigPanel2);
        splitPane.setResizeWeight(0.4);
        splitPane.setEnabled(false);
       //  contentpane.add(splitPane);

        //Linke Seite Layout
        //Label Größe
        GridBagConstraints gbc1 = new GridBagConstraints();
        gbc1.gridx = 0;
        gbc1.gridy = 0;
        gbc1.anchor = GridBagConstraints.WEST;
        gbc1.insets = new Insets(1, 1, 1, 20);
        konfigPanel1.add(new JLabel("Größe: "), gbc1);

        //ComboBox Größe
        pizzaSize = new JComboBox(PizzaSize.values());
        pizzaSize.setSelectedIndex(3);
        GridBagConstraints gbc2 = new GridBagConstraints();
        gbc2.gridx = 1;
        gbc2.gridy = 0;
        gbc2.anchor = GridBagConstraints.NORTHWEST;
        konfigPanel1.add(pizzaSize, gbc2);

        //Label Belag
        GridBagConstraints gbc3 = new GridBagConstraints();
        gbc3.gridx = 0;
        gbc3.gridy = 1;
        gbc3.insets = new Insets(1, 1, 1, 20);
        konfigPanel1.add(new JLabel("Belag: "), gbc3);

        //Checkboxen Belag
        GridBagConstraints gbc4 = new GridBagConstraints();
        gbc4.gridx = 1;
        gbc4.gridy = 1;
        gbc4.anchor = GridBagConstraints.NORTHWEST;
        for (PizzaTopping topping : PizzaTopping.values()) {
            konfigPanel1.add(new JCheckBox(topping.toString()), gbc4);
            gbc4.gridy++;
        }

        //Rechte Seite
        //In BorderSouth FlowLayout
        PizzaKonfigPanel southPanel = new PizzaKonfigPanel(new FlowLayout());
        konfigPanel2.add(southPanel, BorderLayout.SOUTH);

        //Bild
        PizzaKonfigPanel centerpanel = new PizzaKonfigPanel();
        konfigPanel2.add(centerpanel, BorderLayout.CENTER);
        pizza = new ImageIcon("C:\\Users\\sabri\\IdeaProjects");
        JLabel bild = new JLabel(pizza);
        centerpanel.add(bild);

        //Buttons Fertig und Beenden
        southPanel.add(new JButton("Fertig"));
        southPanel.add(new JButton("Beenden"));
    }
}

[CODE lang="java" title="Main-Klasse"]package view;

public class main {

public static void main(String[] args) {
PizzaKonfigurator konfigurator = new PizzaKonfigurator();
konfigurator.setVisible(true);
}
}[/CODE]

Ich habe versucht es mit einem SplitPane darzustellen, aber sobald ich dann die main starte, ist die Fläche komplett leer und man sieht keine Komponenten außer der MenuBar, aber mit dem ContentPane, was ich hier jetzt auskommentiert habe, sieht man alles, ich sitze schon seit Stunden dran und habe mit etliche COde-Beispiele angeschaut, aber ich finde meinen Fehler nicht...

Das Bild sieht man übrigens auch nicht, falls man mir da auch noch einen Tipp geben könnte :D
 

X5-599

Top Contributor
Du musst das SplitPane eben in deinem Frame setzen. Dazu reicht ein add(splitPane); Der JFrame hat (sofern nicht explizit geändert) ein BorderLayout und somit landet die Komponente im CENTER. Man kann es natürlich auch ausschreiben: add(splitPane, BorderLayout.CENTER);

Und dein absoluter Pfad gibt nur ein Verzeichnis an? Oder hat das Bild keine Dateiendung?
 

_brina205

Mitglied
Du musst das SplitPane eben in deinem Frame setzen. Dazu reicht ein add(splitPane); Der JFrame hat (sofern nicht explizit geändert) ein BorderLayout und somit landet die Komponente im CENTER. Man kann es natürlich auch ausschreiben: add(splitPane, BorderLayout.CENTER);

Und dein absoluter Pfad gibt nur ein Verzeichnis an? Oder hat das Bild keine Dateiendung?
Oh Mann, stimmt, das hat gefehlt 🤦‍♀️ Der Pfad war nicht ganz richtig, du hattest richtig, jetzt hats funktioniert, vielen Dank für Deine Hilfe :)
 

_brina205

Mitglied
Java:
PizzaKonfigPanel centerpanel = new PizzaKonfigPanel();
        konfigPanel2.add(centerpanel, BorderLayout.CENTER);
        pizza = new ImageIcon("C:/Users/sabri/IdeaProjects/PizzaBild.jpg");
        pizza.setImage(pizza.getImage().getScaledInstance(200,200, Image.SCALE_DEFAULT));
        JLabel bild = new JLabel(pizza);
        centerpanel.add(bild);

Wie schaffe ich es jetzt, dass das Bild nicht oben klebt sondern in der Mitte und dass es größer wird, sobald ich das Fenster größer ziehe?
 

Neumi5694

Top Contributor
Ein möglicher Ansatz: Lade das Bild EINMAL beim Formularstart und halte es in Originalgröße in einer Variable.
Dein JLabel kriegt einen Component-Listener. im Resize-Abschnitt wird ausgewertet, wie groß dein JLabel im Vergleich zum BIld ist und der Streckfaktor entsprechend berechnet. Dann wird dem Label in der selben Methode das skalierte BIld zugewiesen. Vielleicht gibt's aber auch was vorgefertigtes, damit man nicht jedesmal neu zuweisen muss.
ODER du weist das Bild dem Label gar nicht zu, sondern lässt es während der Paint-Methode reinzeichnen, jedesmal entsprechend Labelgröße neu skaliert. Damit umgehst du Insets usw.
Letzteres funktioniert mit jeder Komponente, da sie keine Icon-Property haben muss.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
DaCrazyJavaExpert Swing JPanel "ContentPane" wird nicht gesetzt/angezeigt AWT, Swing, JavaFX & SWT 16
I ContentPane lösche linien AWT, Swing, JavaFX & SWT 1
I Objekte aus contentPane löschen funktioniert nicht AWT, Swing, JavaFX & SWT 3
U Swing Panels im Contentpane durchschalten AWT, Swing, JavaFX & SWT 1
N individuell geformtes ContentPane?! AWT, Swing, JavaFX & SWT 2
P Swing mit ContentPane wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
jemandzehage setResizable(false) ändert Größe des Contentpane AWT, Swing, JavaFX & SWT 4
B Swing ContentPane resettet sich selbst AWT, Swing, JavaFX & SWT 2
K Swing: ContentPane von JDialog ist transparent (Fehler) AWT, Swing, JavaFX & SWT 10
thE_29 Bufferungsproblem JFrame/JPanel/ContentPane AWT, Swing, JavaFX & SWT 2
S definierte Größe von contentPane / JPanel möglich? AWT, Swing, JavaFX & SWT 4
P Breite und Höhe des contentPane abfragen AWT, Swing, JavaFX & SWT 3
O ContentPane AWT, Swing, JavaFX & SWT 4
F Wie bestimmte Obj. einer ContentPane abfragen und vergl? AWT, Swing, JavaFX & SWT 11
M Zwei Element auf ein Contentpane AWT, Swing, JavaFX & SWT 45
G jFrame & ContentPane AWT, Swing, JavaFX & SWT 4
T Text auf eine ContentPane AWT, Swing, JavaFX & SWT 4
R ContentPane bei JFrame und JDialog AWT, Swing, JavaFX & SWT 2
D JFrame Größe auf ContentPane Größe abstimmen AWT, Swing, JavaFX & SWT 2
sliwalker ContentPane leeren und völlig neu bestücken? AWT, Swing, JavaFX & SWT 4
R Buttons in ContentPane austauschen AWT, Swing, JavaFX & SWT 7
K Contentpane neu laden AWT, Swing, JavaFX & SWT 4
F ContentPane Scrollbar machen. AWT, Swing, JavaFX & SWT 3
M Vokabelprogram - Schleife für Liste soll schrittweise durchlaufen werden AWT, Swing, JavaFX & SWT 3
melaniemueller JavaFX Beispiel kann nicht ausgeführt werden AWT, Swing, JavaFX & SWT 4
J Swing Werte des JTable werden nicht angezeigt AWT, Swing, JavaFX & SWT 9
W Können Animationen in JavaFX "verschluckt" werden? AWT, Swing, JavaFX & SWT 8
M Umwandlung in den HSV-Farbraum lässt die Grafik pixelig werden AWT, Swing, JavaFX & SWT 8
H JButtons werden nicht angezeigt AWT, Swing, JavaFX & SWT 5
Lunar Swing JFrame erstellt; weitere Elemente werden nicht eingefügt/sind nicht zu sehen AWT, Swing, JavaFX & SWT 4
B JavaFX Von welcher Klasse und zu welchem Zeitpunkt werden Event-Objekte erstellt? AWT, Swing, JavaFX & SWT 3
ProggersWorld JavaFX Icons im TreeView werden nicht angezeigt AWT, Swing, JavaFX & SWT 1
E Swing Componenten werden nach Änderung des display modes verzerrt dargestellt AWT, Swing, JavaFX & SWT 8
Zrebna Problem bei Eventhandling (Value soll nach jedem erneutem Klick gelöscht werden) AWT, Swing, JavaFX & SWT 4
J e(fx)clipse funkioniert nicht / imports werden Rot gekennzeichnet AWT, Swing, JavaFX & SWT 1
ronbot77 JavaFX Rechtecke werden nicht neu gezeichnet AWT, Swing, JavaFX & SWT 8
R FXML File kann nicht hinzugefügt werden! AWT, Swing, JavaFX & SWT 2
L Komponenten eines Panels werden erst nach Klick darauf angezeigt AWT, Swing, JavaFX & SWT 13
H String teilen, damit bei JLabel keine Punkte am Ende angezeigt werden AWT, Swing, JavaFX & SWT 4
E Komponenten von JScrollPane werden nicht richtig ermittelt AWT, Swing, JavaFX & SWT 2
L Image kann nicht gefunden werden AWT, Swing, JavaFX & SWT 1
L Bilder werden in exportierter Datei nicht geladen AWT, Swing, JavaFX & SWT 6
J Bilder aus dem SceneBuilder werden in der Jar nicht dargestellt AWT, Swing, JavaFX & SWT 4
TheWhiteShadow JavaFX Bilder werden ungewollt Skaliert AWT, Swing, JavaFX & SWT 1
MoxxiManagarm JavaFX Auch ich versuche mit JavaFX warm zu werden AWT, Swing, JavaFX & SWT 9
A 2D-Grafik Zeichen werden über unabhängingen JRadioButton nicht gefüllt AWT, Swing, JavaFX & SWT 28
L Swing JPanels werden nicht angezeigt! AWT, Swing, JavaFX & SWT 7
ralfb1105 Swing SwingWorker - max 10 Threats werden gestartet !? AWT, Swing, JavaFX & SWT 5
S Fehler: Hauptklasse neon.Main konnte nicht gefunden oder geladen werden AWT, Swing, JavaFX & SWT 5
A Swing Meine JButtons werden nicht angezeigt bitte helft mir AWT, Swing, JavaFX & SWT 2
J JavaFX Elemente werden nicht zu TableView hinzugefügt AWT, Swing, JavaFX & SWT 3
SchmidiMC 2D-Grafik Grafiken werden nicht gezeichnet AWT, Swing, JavaFX & SWT 2
J Controler werden nicht inialisiert - Warum ? AWT, Swing, JavaFX & SWT 12
J TableView Daten werden nicht ausgegeben AWT, Swing, JavaFX & SWT 9
DaCrazyJavaExpert Swing Komponenten in GridBagLayout werden Falsch angeordnet AWT, Swing, JavaFX & SWT 1
N Swing JButtons werden nach repaint() doppelt dargestellt AWT, Swing, JavaFX & SWT 12
R JRE, NPAPI Java Plugins: Werden Plugins weiterhin bereit gestellt? AWT, Swing, JavaFX & SWT 5
I JAVA 8, JAVAFX und Eclipse – muss Eclipse extra eingerichtet werden? AWT, Swing, JavaFX & SWT 9
L Swing JComboBox kann nicht erstellt werden! AWT, Swing, JavaFX & SWT 2
DerMauri JavaFX Raspberry Pi meldet "Hauptklasse konnte nicht gefunden oder geladen werden" AWT, Swing, JavaFX & SWT 10
A Swing Programm funktioniert aber zwei Buttons werden angezeigt AWT, Swing, JavaFX & SWT 3
J Swing Strings werden nicht in Textfeld geschrieben AWT, Swing, JavaFX & SWT 8
J Swing Probleme mit ListSelectionListener(), Inhalte der JList werden gelöscht? AWT, Swing, JavaFX & SWT 6
MrSnake ComboBox-Einträge werden unsichtbar AWT, Swing, JavaFX & SWT 0
T JButton überlagern sich und werden erst beim Mausscrollen sichtbar AWT, Swing, JavaFX & SWT 2
X JavaFX Tooltips für XYChart-Knoten werden nicht angezeigt! AWT, Swing, JavaFX & SWT 3
P JavaFX - XCF Datei von Gimp kann nicht angezeigt werden AWT, Swing, JavaFX & SWT 3
J Meine ProgBar und ProgIndi werden nicht aktualisiert AWT, Swing, JavaFX & SWT 28
A Swing Buttons werden trotz setVisible nicht dargestellt AWT, Swing, JavaFX & SWT 14
D JavaFX GUI Komponenten werden langsam bei größerer Datenmenge AWT, Swing, JavaFX & SWT 6
C AWT Textfelder werden nicht automatisch angezeigt AWT, Swing, JavaFX & SWT 2
D Buttons werden nebeneinander angeordnet AWT, Swing, JavaFX & SWT 9
C Textfeld und Label werden nicht angezeigt (Ubuntu) AWT, Swing, JavaFX & SWT 2
9 Swing Registrierte Knöpfe mit Bildern werden nicht angezeigt AWT, Swing, JavaFX & SWT 3
W Swing Farbige JPanels auf JFrame werden nicht gezeigt. Was mach ich falsch? AWT, Swing, JavaFX & SWT 7
Z Swing Swing: Elemente werden doppel/verschoben gezeichnet, sind teils unsichtbar etc... AWT, Swing, JavaFX & SWT 10
L Tooltips werden nicht mehr angezeigt AWT, Swing, JavaFX & SWT 5
R Swing Buttons werden nicht angezeigt AWT, Swing, JavaFX & SWT 4
K JTabs werden nicht angezeigt AWT, Swing, JavaFX & SWT 6
kaoZ Swing JToolBar, ImageIcon werden teilweise verdeckt AWT, Swing, JavaFX & SWT 0
S Swing Tooltips werden nicht angezeigt AWT, Swing, JavaFX & SWT 5
J JavaFX Eigene ListCell Problem(Objekte werden doppelt angezeigt) AWT, Swing, JavaFX & SWT 1
D JavaFX Mysteriöser Dropshadow hinter Tablabelschrift - Schatten kann nicht entfernt werden (FXML + CSS) AWT, Swing, JavaFX & SWT 6
I Swing Bilder werden nach Export nicht angezeigt AWT, Swing, JavaFX & SWT 1
A Swing JColorChooser's Icon will nicht getauscht werden. AWT, Swing, JavaFX & SWT 10
G JavaFX TableView - Änderungen werden nicht übernommen. AWT, Swing, JavaFX & SWT 3
A Swing Bilder werden nicht angezeigt AWT, Swing, JavaFX & SWT 3
A Swing Parameter werden bei Funktionsaufruf nicht ausgegeben AWT, Swing, JavaFX & SWT 2
R Komponenten werden erst nach maximierung des Frames sichtbar (Linux) AWT, Swing, JavaFX & SWT 5
D Image soll langsam sichtbar werden AWT, Swing, JavaFX & SWT 4
J Abbrechen muss immer einmal mehr gedrückt werden AWT, Swing, JavaFX & SWT 3
A Swing ActionListener kann nicht hinzugefügt werden AWT, Swing, JavaFX & SWT 4
J Zwei GUIs - Nach button-Klick soll ein Wert an die andere GUI übergeben werden AWT, Swing, JavaFX & SWT 15
S Swing Inhalte von Scroll-Panes werden nicht gezeichnet AWT, Swing, JavaFX & SWT 9
Z Swing JPanel soll größer werden als Parent Container (überlappen) AWT, Swing, JavaFX & SWT 5
morphesus Swing Komponenten werden nicht angezeigt AWT, Swing, JavaFX & SWT 8
C Mausbewegungen werden gepuffert AWT, Swing, JavaFX & SWT 2
J CMD: Hauptklasse konnte nicht gefunden werden AWT, Swing, JavaFX & SWT 4
F Applet JApplet per html einbinden - Main class kann nicht gefunden werden AWT, Swing, JavaFX & SWT 15
F Bilder werden nicht in's Array geladen AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben