Probleme beim Panelstruktur

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

ich habe eine Frage, dessen Stellung selbst nicht einfach ist. Ich versuche mal.

Ich habe folgenden Panelstruktur:
SplitPane mit TOP, BOTTOM Komponente
TOP: Den Top darf ich nicht anfassen
BOTTOM: Beinhaltet ein JPanel mit BorderLayout mit NORTH, CENTER und SOUTH Komponente

Meine Frage ist wie kann ich den SOUTH Bereich fix machen? D. H. egal wie weit ich meinen Splitter runter schiebe, soll es sichtbar bleiben und stattdessen den Platz von CENTER verkleinern? Ich habe nämlich im Bereich SOUTH die Steuerkomponente wie Speichern und Abbrechen. Und die sollen nicht verschwinden (auch nicht Scrollbar).

Ich hoffe ist einigermaßen verständlich und danke für eure Hilfe schonmal.
 
S

SlaterB

Gast
ist die Frage nicht äquivalent zu
'einzelnes Panel, BorderLayout, South fix machen bei Änderung der Größe des JFrames?'

-------

die diversen setSize-Operationen kennst du alle und hast du ausprobiert?
 
G

Guest

Gast
Naja... Ich ändere ja nicht den Frame sondern nur einen Bereich. Wenn ich die Größe angeben soll (min, max, prefered was auch immer) an was muss ich mich denn orientieren? Zudem wessen Größe soll ich denn angeben?
 
S

SlaterB

Gast
na bei South
setPreferreredSize
setSize
setMinSize
setMaxSize

da muss man die Werte festangeben, Höhe mal Breite,

wenn die anderen Teile des Layouts weniger festgezurrt sind, könnte das den LayoutManager beeindrucken,
verlassen kann man sich darauf nie
 
G

Guest

Gast
Das funzt nicht. Ich habe alle eingebaut.
Das Problem liegt darin, dass nicht die größe von der Komponente mit dem Borderlayout sich ändert sondern von dem mit SplitPane. Wenn ich die Leiste runterschiebe passiert größentechnisch gesehen im Bottom teil gar nichts. Als ob man es scrollen würde. Daraus folgt: Die unterste Komponente in dem Fall der SOUTH verschwindet. ???:L
 
S

SlaterB

Gast
schön, dass du nichtmal ein Testprogramm zur Verfügung stellst,
jeden Millimeter Arbeit darf man selber machen...

interessante Entdeckung:
wenn man south vor north einfügt, dann dominiert dieses north
Code:
public class TestGUI
    extends JFrame
{

    public TestGUI()
    {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel north = new JPanel();
        north.setBackground(Color.GREEN);
        north.setPreferredSize(new Dimension(400, 400));
        JPanel south = new JPanel();
        south.setBackground(Color.BLUE);
        south.setPreferredSize(new Dimension(400, 400));
        getContentPane().add(south, BorderLayout.SOUTH);
        getContentPane().add(north, BorderLayout.NORTH);
        setSize(800, 600);
        setVisible(true);
    }

    public static void main(String[] args)
    {
        new TestGUI();
    }
}
 
G

Guest

Gast
Erstmal danke für deine Mühe, aber warum regst du dich denn so auf? Ich dachte vielleicht ist es nur eine Methodenaufruf wie machmichimmersichtbar(); oder sowas. Hätte doch den Code gepostet, wenn du gesagt hättest. Ich finde es unübersichtlich, wenn jemand gleich 100 Zeieln Code postet. Aber trotzdem Danke.
 
G

Guest

Gast
Ich habe es ausprobiert -> bringt nichts.

hier nochmal der Aufbau:
Code:
...
    private JSplitPane jSplitInhalt = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
    private JPanel bottomContentPanel = new JPanel(new BorderLayout()); 
    private JPanel topContentPanel = new JPanel(); 
    private JPanel northPanel= new JPanel();
    private JPanel southPanel= new JPanel();
    private JPanel centerPanel= new JPanel();
...
// Top nicht anfassen
    jSplitInhalt.add(topContentPanel );
    jSplitInhalt.add(bottomContentPanel);
    bottomContentPanel.add(northPanel, BorderLayout.NORTH);
    bottomContentPanel.add(centerPanel, BorderLayout.CENTER);
    bottomContentPanel.add(southPanel, BorderLayout.SOUTH);
...
so ist die Verschachtelung. Ich möchte gern, wenn sich der Splitter von jSplitInhalt verschiebt (nach unten), dass southPanel immer sichtbar bleibt. :bahnhof:
 
S

SlaterB

Gast
tja, also ich kann da nun keinen simplen Befehl herbeizaubern,
da bräuchte ich schon ein vollständiges Programm als Vorlage zum probieren :bae:
 
G

Guest

Gast
@SlaterB: Wofür brauchst du seinen Code? Kopier doch einfach den Teil was er gepostet hat in deinen? Wo ist das Problem?

Code:
public class TestGUI
    extends JFrame
{
    private JSplitPane jSplitInhalt = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
    private JPanel bottomContentPanel = new JPanel(new BorderLayout());
    private JPanel topContentPanel = new JPanel();
    private JPanel northPanel= new JPanel();
    private JPanel southPanel= new JPanel();
    private JPanel centerPanel= new JPanel();

    public TestGUI()
    {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        northPanel.setBackground(Color.GREEN);
        northPanel.setPreferredSize(new Dimension(400, 400));

        southPanel.setBackground(Color.BLUE);
        southPanel.setPreferredSize(new Dimension(400, 400));

        centerPanel.setBackground(Color.RED);
        centerPanel.setPreferredSize(new Dimension(400, 400));

        bottomContentPane.add(northPanel, BorderLayout.NORTH);
        bottomContentPane.add(southPanel, BorderLayout.SOUTH;
        bottomContentPane.add(centerPanel, BorderLayout.CENTER);

        jSplitInhalt.add(topContentPanel);
        jSplitInhalt.add(bottomContentPanel);

        getContentPane().add(jSplitInhalt );
        setSize(800, 600);
        setVisible(true);
    }

    public static void main(String[] args)
    {
        new TestGUI();
    }
}
...geht doch :bae:
@Gast: zu deiner frage. ich glaube das war gemeint oder? wenn ich jetzt den splitter schiebe, verschwindet south? meiner meinung nach ist das nicht zu vermeiden ohne den top anzufassen. aber vielleich kann ja SlaterB jetzt zaubern :D
 
S

SlaterB

Gast
so, dann kanns ja losgehen ;)
dein Code hatte aber noch einige Fehler,
bottomContentPane statt bottomContentPanel?
gar nicht ausprobiert?

jedenfalls habe ich doch vorher schon geschrieben:
erst south einfügen, dann north, dann gehts?
Code:
public class TestGUI
    extends JFrame
{
    private JSplitPane jSplitInhalt = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
    private JPanel bottomContentPanel = new JPanel(new BorderLayout());
    private JPanel topContentPanel = new JPanel();
    private JPanel northPanel = new JPanel();
    private JPanel southPanel = new JPanel();
    private JPanel centerPanel = new JPanel();

    public TestGUI()
    {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        northPanel.setBackground(Color.GREEN);
        northPanel.setPreferredSize(new Dimension(400, 400));

        southPanel.setBackground(Color.BLUE);
        southPanel.setPreferredSize(new Dimension(400, 400));

        centerPanel.setBackground(Color.RED);
        centerPanel.setPreferredSize(new Dimension(400, 400));

        bottomContentPanel.add(southPanel, BorderLayout.SOUTH);
        bottomContentPanel.add(northPanel, BorderLayout.NORTH);
        bottomContentPanel.add(centerPanel, BorderLayout.CENTER);

        jSplitInhalt.add(topContentPanel);
        jSplitInhalt.add(bottomContentPanel);

        getContentPane().add(jSplitInhalt);
        setSize(800, 600);
        setVisible(true);
    }

    public static void main(String[] args)
    {
        new TestGUI();
    }
}
 
G

Guest

Gast
erstmal danke an beide.
beispiel habe ich ausprobiert. es funktioniert. aber in meiner anwendung funktioniert es nicht. villeicht liegt es daran. das mein element der in north bereich liegt ein JTable ist?!? schmeisse ich da label rein funktioniert es auch. hantiere schon ewig hier rum
 
S

SlaterB

Gast
du weißt ja, wie du mich dazu bewegen kannst, weiter zu testen ;)

zaubern kann ich aber immer noch nicht,
höchstens herausfinden, ob bei JTable eine Mindestgröße angegeben ist
oder ähnliche pauschal nicht zu beurteilende Dinge
 

CelikBlek

Bekanntes Mitglied
Ist einfach unglaublich. Ich habe den Aufbau vom Prog. in unserem Beispiel nachgestellt. So sieht es aus. Komischerweise funktioniert es hier auch. Wenn der untere Platz zu eng wird, wird es blockiert. In meinem Programm geht es nicht :bahnhof:
Hier das Beispiel:
Code:
package de.test;

import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.JTable;

public class TestGUI extends JFrame {
    
    // Oberste Container
    private JSplitPane jSplitInhaltGesamt = new JSplitPane(JSplitPane.VERTICAL_SPLIT);

    // Normalerweise Panel - > Daraf nicht angefasst werden (TOP vom jSplitInhaltGesamt)
    private JLabel nichtLbl = new JLabel("Bereich der nicht anzufassen ist");

    // BOTTOM vom jSplitInhaltGesamt - > meine Wiese :-)
    private JPanel inhaltsPanel = new JPanel(new BorderLayout());

    // Inhalt vom inhaltsPanel
    // southPanel = Steuerungsknöpfe wie speicher, abbrechen
    // northPanel = Ist ein Panel mit ComboBox
    // innererSplitter = Der hat im TOP Bereich einen Panel mir JTable und im BOTTOM einen Panel 
    // Bearbeitungsmaske mit mehreren Elementen
    private JPanel northPanel = new JPanel();
    private JPanel southPanel = new JPanel();
    private JSplitPane innererSplitter = new JSplitPane(JSplitPane.VERTICAL_SPLIT);

    // Inhalt vom innererSplitter (TOP und BOTTOM)
    private JPanel bottomContentPanel = new JPanel(new BorderLayout());
    private JPanel topContentPanel = new JPanel();
    
    // Nun die Elemente
    JTable meineTabelle = new JTable(5, 4);
    JLabel meinLabel = new JLabel("Hier kommt später Bearbeitungsmaske");
    JButton meinBtn = new JButton("Speichern z.B.");

    public TestGUI() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        jSplitInhaltGesamt.setOneTouchExpandable(true);
        innererSplitter.setOneTouchExpandable(true);
        
        jSplitInhaltGesamt.add(nichtLbl);
        jSplitInhaltGesamt.add(inhaltsPanel);

        inhaltsPanel.add(southPanel, BorderLayout.SOUTH);
        inhaltsPanel.add(northPanel, BorderLayout.NORTH);
        inhaltsPanel.add(innererSplitter, BorderLayout.CENTER);
        innererSplitter.add(topContentPanel);
        innererSplitter.add(bottomContentPanel);

        topContentPanel.add(meineTabelle);        
        bottomContentPanel.add(meinLabel);
        
        southPanel.add(meinBtn);

        getContentPane().add(jSplitInhaltGesamt);
        setSize(800, 600);
        setVisible(true);
    }

    public static void main(String[] args) {
        new TestGUI();
    }
}
Ist schon klar :roll: das funzt. Im Programm ist nichts anderes. Meine eigentlichen ELmente habe ich auch ersetzt mit dem vom Bsp.. TUT EINFACH NET die §$%§$&.

Falls ich was finden sollte poste ich.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Probleme beim Drucken auf einen PDF-Drucker AWT, Swing, JavaFX & SWT 8
D JavaFX Probleme beim nachtäglichen hinzufügen der jfx dependency AWT, Swing, JavaFX & SWT 7
B 2D-Grafik paintcomponent Probleme beim zeichnen AWT, Swing, JavaFX & SWT 10
L JavaFX Probleme beim Installieren JavaFX11 / JavaFX12 -- Eclipse 2019-03 AWT, Swing, JavaFX & SWT 3
H JavaFX Probleme Beim Wechseln der scene als .fxml AWT, Swing, JavaFX & SWT 7
F JavaFX Probleme beim automatischen Konvertieren AWT, Swing, JavaFX & SWT 4
T Java FX Probleme beim befüllen eines Tableviews AWT, Swing, JavaFX & SWT 5
S AWT Probleme beim Zeichnen AWT, Swing, JavaFX & SWT 3
K Probleme beim JPasswordField AWT, Swing, JavaFX & SWT 11
D JavaFX Probleme bei Service-Klasse beim ändern der GUI AWT, Swing, JavaFX & SWT 8
K Probleme beim zeichnen mit paintComponent() AWT, Swing, JavaFX & SWT 1
C Java FX Probleme beim Schließen einer Stage AWT, Swing, JavaFX & SWT 11
H Swing Probleme beim erstellen eines neuen Objektes durch einen Button AWT, Swing, JavaFX & SWT 10
N 2D-Grafik 2 Probleme beim zeichnen AWT, Swing, JavaFX & SWT 18
C SWT probleme beim einbinden von Images AWT, Swing, JavaFX & SWT 2
S Probleme beim drucken AWT, Swing, JavaFX & SWT 13
D Swing Probleme beim Anzeigen der einzelnen Komponenten AWT, Swing, JavaFX & SWT 16
N Probleme beim positionieren von Elementen AWT, Swing, JavaFX & SWT 2
A Probleme beim FocusListener AWT, Swing, JavaFX & SWT 6
L Probleme beim Refresh von JTable AWT, Swing, JavaFX & SWT 7
S Swing Probleme beim Aktualisieren einer JComboBox nach Auswahländerung AWT, Swing, JavaFX & SWT 2
K JList-Probleme beim Hinzufügen von Elementen AWT, Swing, JavaFX & SWT 3
P Swing Probleme beim Zeichen AWT, Swing, JavaFX & SWT 6
O Probleme beim Zeichnen und AWT-Event-Queue-0 Exception AWT, Swing, JavaFX & SWT 5
A Probleme beim Drucken AWT, Swing, JavaFX & SWT 5
R Probleme beim Zeichnen eines Koordinatensystems AWT, Swing, JavaFX & SWT 10
M Probleme beim Bild einfügen in CenterPanel AWT, Swing, JavaFX & SWT 5
A Probleme beim Drucken (Seite wird abgeschnitten) AWT, Swing, JavaFX & SWT 2
S Probleme beim Neuzeichnen eines JLabels AWT, Swing, JavaFX & SWT 6
W Probleme beim Erstellen einer Tabelle AWT, Swing, JavaFX & SWT 2
T Probleme beim Resizen einer JScrollPane AWT, Swing, JavaFX & SWT 2
M Probleme beim Hinzufügen von Objekten zu getContentPane() AWT, Swing, JavaFX & SWT 2
E Probleme beim Layout! AWT, Swing, JavaFX & SWT 8
E Probleme beim Layout mit Buttons und CheckboxGroup AWT, Swing, JavaFX & SWT 9
S Probleme beim Laden und Speichern von Dateien AWT, Swing, JavaFX & SWT 6
C Habe Probleme beim Bild laden! *Update 30.11.2006* AWT, Swing, JavaFX & SWT 28
C Probleme beim Serialisieren mit JOptionPane AWT, Swing, JavaFX & SWT 12
C Probleme beim ausführen von Programmen mit Fenstern+Inhalt AWT, Swing, JavaFX & SWT 3
Q JTextPane / Probleme beim Einfügen von <br>-Tags AWT, Swing, JavaFX & SWT 2
G Probleme beim Lösen einer Übungsaufgabe AWT, Swing, JavaFX & SWT 5
C Probleme beim 2. öffnen eines Fensters AWT, Swing, JavaFX & SWT 5
A Probleme beim Ausdrucken AWT, Swing, JavaFX & SWT 4
V Probleme beim Scrollen ein JPanels mit JScrollPane AWT, Swing, JavaFX & SWT 2
R Probleme beim Wiederherstellen eines JInternalFrames AWT, Swing, JavaFX & SWT 4
G Probleme beim Füllen einer JTable AWT, Swing, JavaFX & SWT 2
Juelin Probleme bei Stage.close() AWT, Swing, JavaFX & SWT 23
XWing Swing Image anzeigen und probleme mit klassen AWT, Swing, JavaFX & SWT 3
E repaint Probleme AWT, Swing, JavaFX & SWT 13
mananana Mögliche probleme die in einer GUI passieren Können AWT, Swing, JavaFX & SWT 6
S GridBagLayout - Probleme mit Bilderanzeige AWT, Swing, JavaFX & SWT 3
J Probleme mit idividueller Tablecell AWT, Swing, JavaFX & SWT 0
J Probleme mit InputDialog AWT, Swing, JavaFX & SWT 4
D JavaFX TextArea Probleme bei langen Zeilen AWT, Swing, JavaFX & SWT 1
G JavaFX SplitPane Anwendung - Controller Probleme AWT, Swing, JavaFX & SWT 5
K Probleme bei der Erstellung und Ausführung einer Jar Datei AWT, Swing, JavaFX & SWT 2
B Probleme Action Listener Taschenrechner AWT, Swing, JavaFX & SWT 27
pph080560 JavaFX Probleme mit FX AWT, Swing, JavaFX & SWT 3
M Probleme mit OpenJDK AWT, Swing, JavaFX & SWT 6
B Swing Probleme mit dem Layout AWT, Swing, JavaFX & SWT 1
Fiedlerdan Image-Pfad Probleme nach Export aus Eclipse AWT, Swing, JavaFX & SWT 31
H JFreeChart - DemoDataSetFactory Probleme AWT, Swing, JavaFX & SWT 1
H LayoutManager Probleme mit Positionierung/Abständen der Komponenten AWT, Swing, JavaFX & SWT 14
A Probleme mit gridheight (GridBagLayout) AWT, Swing, JavaFX & SWT 6
U Opaque Probleme AWT, Swing, JavaFX & SWT 3
S Probleme mit JComboboxen(?) AWT, Swing, JavaFX & SWT 18
S Swing Probleme mit MigLayout AWT, Swing, JavaFX & SWT 2
C Probleme mit createImage AWT, Swing, JavaFX & SWT 1
J Probleme mit contex Menu (javafx) AWT, Swing, JavaFX & SWT 1
J Probleme bei GameofLife AWT, Swing, JavaFX & SWT 24
S JavaFx - Button ActionEvent Probleme AWT, Swing, JavaFX & SWT 3
T Swing Probleme mit repaint() bzw. JScrollPane AWT, Swing, JavaFX & SWT 7
ImperatorMing JavaFX Probleme mit WindowEvent AWT, Swing, JavaFX & SWT 0
ImperatorMing JavaFX Probleme mit WindowEvent AWT, Swing, JavaFX & SWT 5
J LayoutManager GridBagLayout, probleme mit Anordnung von Objekten AWT, Swing, JavaFX & SWT 6
A Swing Probleme mit dem adden von JButtons zur JScrollPane AWT, Swing, JavaFX & SWT 2
D Swing Probleme mit dem Resizing AWT, Swing, JavaFX & SWT 7
G Probleme mit TextArea AWT, Swing, JavaFX & SWT 5
G JFrame Probleme AWT, Swing, JavaFX & SWT 2
G Cardlayout Refresh Probleme AWT, Swing, JavaFX & SWT 2
J Swing Probleme mit ListSelectionListener(), Inhalte der JList werden gelöscht? AWT, Swing, JavaFX & SWT 6
M JButton Probleme AWT, Swing, JavaFX & SWT 14
L Probleme mit Programm AWT, Swing, JavaFX & SWT 13
blazingblade komischerweise probleme mit jtextfield.gettext() AWT, Swing, JavaFX & SWT 9
Xanny 2D-Grafik Beginner! Probleme mit Swing, Gprahics class und paint AWT, Swing, JavaFX & SWT 13
Sin137 LayoutManager GridBagLayout Probleme AWT, Swing, JavaFX & SWT 6
H Netbeans Designer: Probleme mit JPanel und JFrame AWT, Swing, JavaFX & SWT 2
M Swing Probleme mit Frame.pack() AWT, Swing, JavaFX & SWT 1
M Swing JProgressbar und Outoputstream probleme AWT, Swing, JavaFX & SWT 2
S Swing Probleme mit transparenz der Hintergrundfarbe und JRadioButtons AWT, Swing, JavaFX & SWT 2
Z Probleme mit JPanel's AWT, Swing, JavaFX & SWT 6
T Probleme mit Anzeige von Elementen im JPanel AWT, Swing, JavaFX & SWT 1
Shams Probleme bei dem Hinzufügen von Komponenten zu einem JFrame AWT, Swing, JavaFX & SWT 3
A Swing Probleme mit JScrollPane AWT, Swing, JavaFX & SWT 6
M Layout-Probleme unter Swing AWT, Swing, JavaFX & SWT 5
J JavaFX JavaFX Probleme bei der Anzeige von Text AWT, Swing, JavaFX & SWT 18
A Probleme mit TilledBorder("***") AWT, Swing, JavaFX & SWT 4
F Bildschirmschoner Probleme mit Preview AWT, Swing, JavaFX & SWT 8
X Panel Probleme (Tetris) AWT, Swing, JavaFX & SWT 8
N JTable probleme AWT, Swing, JavaFX & SWT 5
B Probleme bei ImageIO.read (?!) AWT, Swing, JavaFX & SWT 9

Ähnliche Java Themen

Neue Themen


Oben