FlowLayout:Lücken "schließen"

aze

Bekanntes Mitglied
Hi

Ich habew folgendes Problem.Ich will eine Komponente erstellen in der einige Elemente einen Floweffekt besitzen sollen(also beim Verkleinern des Fensters nach "oben" oder "unten" geschoben werden sollen) und einige sollen fest sein(keine Verschiebeung und in der "Reihe" ,in der sie sich befinden sollen keine weiteren Elemente angezeigt werden.).

Ich hoffe die Grafiken im Anhang verdeutlichen die Situation.Der oeben genannte Effekt klappt schon ganz gut.Allerdings enstehen bvei der Verschiebung Lücken und ich möchte dass die "ausgefüllt"werden indem untere Komponenten nach oben geschoben werden.Ist das möglich ?

Hier mein bisheriger Code:

Java:
import java.util.ArrayList;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

/**
 *
 * @author Administrator
 */
public class LeftSideOpenedPalette extends JPanel
{

    String FadeGifsFolder = "C:\\Dokumente und Einstellungen\\Administrator\\Eigene Dateien\\NetBeansProjects\\ToothManager3D\\ToothManager3DGui\\src\\de\\crosssoft\\ToothManager3D\\Gui\\TopComponents\\SingleComponents\\LeftSideFunctions\\FadeGifs";
    String TeethGifFolder = "C:\\Dokumente und Einstellungen\\Administrator\\Eigene Dateien\\NetBeansProjects\\ToothManager3D\\ToothManager3DGui\\src\\de\\crosssoft\\ToothManager3D\\Gui\\TopComponents\\SingleComponents\\LeftSideFunctions\\TeethGifs";
    String OrientationGifsFolder = "C:\\Dokumente und Einstellungen\\Administrator\\Eigene Dateien\\NetBeansProjects\\ToothManager3D\\ToothManager3DGui\\src\\de\\crosssoft\\ToothManager3D\\Gui\\TopComponents\\SingleComponents\\LeftSideFunctions\\OrientationGifs";
    String GifsFolder = "C:\\Dokumente und Einstellungen\\Administrator\\Eigene Dateien\\NetBeansProjects\\ToothManager3D\\ToothManager3DGui\\src\\de\\crosssoft\\ToothManager3D\\Gui\\TopComponents\\SingleComponents\\LeftSideFunctions\\OrientationGifs";

    public LeftSideOpenedPalette()
    {

        BoxLayout boxLayout = new BoxLayout(this, BoxLayout.Y_AXIS);
        setLayout(boxLayout);


        JLabel ViewLabel = new LeftSideOpenedPaletteItem("Ansicht");
        ViewLabel.setIcon(new ImageIcon(FadeGifsFolder + File.separatorChar + "gebiss_alles.gif"));


        JLabel BoothJawLabel = new LeftSideOpenedPaletteItem("Beide Kieferhälften");
        BoothJawLabel.setIcon(new ImageIcon(FadeGifsFolder + File.separatorChar + "gebiss_alles.gif"));


        JLabel UpperJawLabel = new LeftSideOpenedPaletteItem("Obere Kieferhälfte");
        UpperJawLabel.setIcon(new ImageIcon(FadeGifsFolder + File.separatorChar + "gebiss_oben.gif"));


        JLabel LowerJawLabel = new LeftSideOpenedPaletteItem("Untere Kieferhälfte");
        LowerJawLabel.setIcon(new ImageIcon(FadeGifsFolder + File.separatorChar + "gebiss_unten.gif"));


        JLabel TransparentJawLabel = new LeftSideOpenedPaletteItem("Tranparente Kiefer");
        TransparentJawLabel.setIcon(new ImageIcon(FadeGifsFolder + File.separatorChar + "gebiss_transparent.gif"));


        JLabel OnlyTeethLabel = new LeftSideOpenedPaletteItem("Nur Zähne");
        OnlyTeethLabel.setIcon(new ImageIcon(FadeGifsFolder + File.separatorChar + "gebiss_fleischlos.gif"));


        ArrayList<JLabel> TeethViewList = new ArrayList<JLabel>();

        TeethViewList.add(BoothJawLabel);
        TeethViewList.add(UpperJawLabel);
        TeethViewList.add(LowerJawLabel);
        TeethViewList.add(TransparentJawLabel);
        TeethViewList.add(OnlyTeethLabel);

        add(createBorderLayoutPanel(ViewLabel, TeethViewList));

        JLabel ToothLabel = new LeftSideOpenedPaletteItem("Zähne");
        ToothLabel.setIcon(new ImageIcon(TeethGifFolder+ File.separatorChar + "gebiss_vorne.gif" ));


        JLabel FrontToothLabel = new LeftSideOpenedPaletteItem("Gebiß vorne");
        FrontToothLabel.setIcon(new ImageIcon(TeethGifFolder + File.separator + "gebiss_vorne.gif"));



        JLabel RightToothLabel = new LeftSideOpenedPaletteItem("Gebiß rechts");
        RightToothLabel.setIcon(new ImageIcon(TeethGifFolder + File.separator + "gebiss_rechts.gif"));

        JLabel LeftToothLabel = new LeftSideOpenedPaletteItem("Gebiß links   ");
        LeftToothLabel.setIcon(new ImageIcon(TeethGifFolder + File.separator + "gebiss_links.gif"));



        JLabel TeethRowLabel = new LeftSideOpenedPaletteItem("Zahnreihe   ");
        TeethRowLabel.setIcon(new ImageIcon(TeethGifFolder + File.separator + "gebiss_ohne_zahnfleisch.gif"));



        JLabel OpenToothLabel = new LeftSideOpenedPaletteItem("Gebiß offen");
        OpenToothLabel.setIcon(new ImageIcon(TeethGifFolder + File.separator + "gebiss_aufgeklappt.gif"));



        ArrayList<JLabel> TeethList = new ArrayList<JLabel>();

        TeethList.add(FrontToothLabel);
        TeethList.add(RightToothLabel);
        TeethList.add(LeftToothLabel);
        TeethList.add(TeethRowLabel);
        TeethList.add(OpenToothLabel);


        add(createBorderLayoutPanel(ToothLabel, TeethList));


        JLabel OrientationLabel = new LeftSideOpenedPaletteItem("Orientierung");
        OrientationLabel.setIcon(new ImageIcon(OrientationGifsFolder + File.separatorChar + "move.gif"));



        JLabel TranslatePanel = new LeftSideOpenedPaletteItem("Verschieben");
        TranslatePanel.setIcon(new ImageIcon(OrientationGifsFolder + File.separatorChar + "move.gif"));


        JLabel RotatePanel = new LeftSideOpenedPaletteItem("Rotieren");
        RotatePanel.setIcon(new ImageIcon(OrientationGifsFolder + File.separatorChar + "rotate_user_defined.gif"));



        JLabel ZoomPanel = new LeftSideOpenedPaletteItem("Zoom");
        ZoomPanel.setIcon(new ImageIcon(OrientationGifsFolder + File.separatorChar + "zoom.gif"));



        ArrayList<JLabel> OrientationList = new ArrayList<JLabel>();

        OrientationList.add(TranslatePanel);
        OrientationList.add(RotatePanel);
        OrientationList.add(ZoomPanel);

        add(createBorderLayoutPanel(OrientationLabel, OrientationList));

        JLabel ControllLabel = new LeftSideOpenedPaletteItem("Kontrolle");
        ControllLabel.setIcon(new ImageIcon((GifsFolder + File.separatorChar + "rotate_user_defined.gif")));

        

    }


    private JPanel createBorderLayoutPanel(JLabel northLabel,ArrayList<JLabel> slidingLabels)
    {
        JPanel returnPanel = new JPanel();

        BorderLayout borderLayout = new BorderLayout();

        returnPanel.setLayout(borderLayout);


        JPanel northPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));

        northPanel.add(northLabel);

        returnPanel.add(northPanel,BorderLayout.NORTH );

        
        JPanel centerPanel = new JPanel();
        
        centerPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
        
        for(JLabel slidingLabel : slidingLabels)
        {
            centerPanel.add(slidingLabel);

        }

        returnPanel.add(centerPanel,BorderLayout.CENTER);

        returnPanel.setSize(returnPanel.getLayout().minimumLayoutSize(this));

        return returnPanel;

    }

    public static void main(String[] args)
    {

        JFrame jFrame = new JFrame("LeftSideOpenPaletteTest");

        jFrame.add(new LeftSideOpenedPalette());

        jFrame.setSize(300, 300);

        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        jFrame.setVisible(true);

    }



}

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package test;

import java.awt.Dimension;
import javax.swing.JLabel;

/**
 *
 * @author Administrator
 */
public class LeftSideOpenedPaletteItem extends JLabel
{

    int width = 150;

    int height = 25;

    public LeftSideOpenedPaletteItem(String name)
    {
        super(name);



        setPreferredSize(new Dimension(width, height));
        setMinimumSize(new Dimension(width,height));
        setMaximumSize(new Dimension(width, height));
        setSize(new Dimension(width, height));

        

    }

}
 

KrokoDiehl

Top Contributor
Ohne es nun getestet zu haben schlage ich vor, dass du im FlowLayout an unterster Stelle folgende Komponente einfügen könntest:
Java:
myContainerWithFlowLayout.add( Box.createVerticalGlue() );
Diese vertikale Paste sorgte dafür, dass sie den übrigen freien Platz beansprucht.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
frager2345 JTextLabel im Flowlayout verschieben AWT, Swing, JavaFX & SWT 4
A hilfe für flowlayout AWT, Swing, JavaFX & SWT 6
T Swing Größe einer Komponente in einem BoxLayout / FlowLayout festlegen AWT, Swing, JavaFX & SWT 7
P LayoutManager TextField.setSize(); in einem FlowLayout AWT, Swing, JavaFX & SWT 3
I BoxLayout, FlowLayout und Komponentengrößen AWT, Swing, JavaFX & SWT 1
R LayoutManager JSeparator in FlowLayout AWT, Swing, JavaFX & SWT 4
M Problem mit FlowLayout, JLabel und JButton AWT, Swing, JavaFX & SWT 4
B FlowLayout Buttons verschieben? AWT, Swing, JavaFX & SWT 13
B Swing JScrollBar in einem JPanel mit FlowLayout AWT, Swing, JavaFX & SWT 15
M FlowLayout Alignment?! AWT, Swing, JavaFX & SWT 9
F AlignmentY bei FlowLayout AWT, Swing, JavaFX & SWT 8
P LayoutManager Komponenten einfügen (FlowLayout, BoxLayout) AWT, Swing, JavaFX & SWT 2
D Komponente im FlowLayout nicht mittig sondern rechts. Wie? AWT, Swing, JavaFX & SWT 4
C JPanel mit FlowLayout in JScrollPane - keinen Scrollbalken AWT, Swing, JavaFX & SWT 2
E LayoutManager FlowLayout mit angepassetr PreferedSize? AWT, Swing, JavaFX & SWT 3
O FlowLayout Button Event zuweisen? AWT, Swing, JavaFX & SWT 7
R FlowLayout: 1 Objekt pro Zeile AWT, Swing, JavaFX & SWT 5
N JTable in FlowLayout verweigert änderungen AWT, Swing, JavaFX & SWT 3
hdi FlowLayout Alternative AWT, Swing, JavaFX & SWT 10
0 Vertikales FlowLayout ? AWT, Swing, JavaFX & SWT 4
M Problem mit jPanel (FlowLayout) in ScrollPane AWT, Swing, JavaFX & SWT 4
E Mysthische Punkte auf JFrame(FlowLayout) nach Komboboxklick AWT, Swing, JavaFX & SWT 5
D Toolbars und Zeilenumbruch (benutze FlowLayout) AWT, Swing, JavaFX & SWT 2
I Vertical FlowLayout AWT, Swing, JavaFX & SWT 1
G position im FlowLayout AWT, Swing, JavaFX & SWT 11
rgubler Umbrechendes Flowlayout AWT, Swing, JavaFX & SWT 2
O Zeilenumbruch erzwingen (FlowLayout? AWT, Swing, JavaFX & SWT 1
K FlowLayout AWT, Swing, JavaFX & SWT 2
F FlowLayout in BorderLayout AWT, Swing, JavaFX & SWT 4
B FlowLayout ausrichtung | "Wasserzeichen" im JFrame AWT, Swing, JavaFX & SWT 8
R FlowLayout-Problem AWT, Swing, JavaFX & SWT 17
L LayoutManager ähnlich wie FlowLayout AWT, Swing, JavaFX & SWT 5
N Problem mit JScrollPane und JPane(FlowLayout) AWT, Swing, JavaFX & SWT 4
S toolbar - flowlayout problem AWT, Swing, JavaFX & SWT 5
M FlowLayout in BorderLayout einbinden? AWT, Swing, JavaFX & SWT 6
G Swing MigLayout: Lücken zwischen Elementen entfernen AWT, Swing, JavaFX & SWT 2
_user_q Kann man ein 2. JavaFX-Fenster auch beenden (exit) statt schließen (close) lassen? AWT, Swing, JavaFX & SWT 8
H Beim JFrame erstellen ein anderes schließen AWT, Swing, JavaFX & SWT 0
S GUI Schließen Button auf der linken Seite AWT, Swing, JavaFX & SWT 2
emma_louisa JavaFX MenuBar Zweitfenster; bei Button "Abbrechen" nur das Zweitfenster schließen AWT, Swing, JavaFX & SWT 2
K Frame aus anderer Klasse schließen AWT, Swing, JavaFX & SWT 3
T JavaFX Dialog schließt ohne dass es schließen soll AWT, Swing, JavaFX & SWT 1
S Mit JButton neues Fester öffnen und das alte schließen AWT, Swing, JavaFX & SWT 3
T Fenster schließen AWT, Swing, JavaFX & SWT 4
R JFrame schließen AWT, Swing, JavaFX & SWT 9
D Frame beim starten eines anderen Frames schließen AWT, Swing, JavaFX & SWT 2
T Klasse über JButton schließen AWT, Swing, JavaFX & SWT 4
D JavaFX Beim Schließen (Rotes X) Code ausführen AWT, Swing, JavaFX & SWT 1
D Geöffnetes Dialogfenster schließen AWT, Swing, JavaFX & SWT 11
C Java FX Probleme beim Schließen einer Stage AWT, Swing, JavaFX & SWT 11
T Event Handling JDialog schließen, sobald ein neuer erzeugt wird AWT, Swing, JavaFX & SWT 3
O Neuen JFrame öffnen und alten schließen AWT, Swing, JavaFX & SWT 7
D Swing Schließen von JDialog soll auch JFrame schließen. AWT, Swing, JavaFX & SWT 4
C Programm mit Passwort schließen AWT, Swing, JavaFX & SWT 5
E JavaFX JavaFX Fenster nicht schließen AWT, Swing, JavaFX & SWT 4
thet1983 offne Fenster gemeinsam schließen AWT, Swing, JavaFX & SWT 8
F Swing JDialog schließen - WindowListener bekommt dispose nicht mit AWT, Swing, JavaFX & SWT 0
U Swing Beim Bedienen eines Buttons JFrame schließen AWT, Swing, JavaFX & SWT 2
W SWT Dialog richtig schließen? AWT, Swing, JavaFX & SWT 0
I JFrame mit JButton schließen? AWT, Swing, JavaFX & SWT 0
F JavaFX KeyListener zum Fenster öffnen/schließen AWT, Swing, JavaFX & SWT 9
U Mehrere Oberflächeninstanzen seperat schließen AWT, Swing, JavaFX & SWT 5
VfL_Freak AWT Browser öffnen und schließen via java.awt.Desktop AWT, Swing, JavaFX & SWT 4
L Event Handling windowAdapter - NullPointerException beim Schließen AWT, Swing, JavaFX & SWT 5
R SWT Wizard schließen AWT, Swing, JavaFX & SWT 2
M Swing Einzelne Fenster schließen AWT, Swing, JavaFX & SWT 2
L SWT Eingabefelder beim Schließen des Forms auslesen AWT, Swing, JavaFX & SWT 3
M Swing ButtonListener Fenster schließen AWT, Swing, JavaFX & SWT 15
C Swing Wie kann ich im Programm das Menü schließen AWT, Swing, JavaFX & SWT 2
J Swing JInternalFrame schließen ändern? AWT, Swing, JavaFX & SWT 7
S JDialog per Button schließen AWT, Swing, JavaFX & SWT 2
M Fenster schließen - Listener AWT, Swing, JavaFX & SWT 5
D Neues Frame öffnen - und dazu altes schließen AWT, Swing, JavaFX & SWT 5
VfL_Freak Swing KeyListener, um einen Dialog per ESC zu schließen AWT, Swing, JavaFX & SWT 6
M JPopupMenu per Klick schließen und gleichzeitig ActionEvent auf JButton? AWT, Swing, JavaFX & SWT 15
S Fremdes Fenster schließen AWT, Swing, JavaFX & SWT 2
E Fenster schließen und ein anderes öffnen AWT, Swing, JavaFX & SWT 9
L Frame Schließen und neustarten AWT, Swing, JavaFX & SWT 4
qwerqer Swing JDialog Darstellungsprobleme - Dialog lässt sich nicht schließen AWT, Swing, JavaFX & SWT 3
Madlip SWT DateTime Widget Schließen AWT, Swing, JavaFX & SWT 4
K beim Schließen des JFrames, Methode aufrufen AWT, Swing, JavaFX & SWT 3
X Öffnen Schließen Fenster AWT, Swing, JavaFX & SWT 4
J Schließen über x soll zwei Prozesse beenden AWT, Swing, JavaFX & SWT 7
J Programm schließen AWT, Swing, JavaFX & SWT 4
H Anwendung schließen ohne System.exit AWT, Swing, JavaFX & SWT 5
0 Fenster schließen AWT, Swing, JavaFX & SWT 2
B AWT mehrere Fenster schließen AWT, Swing, JavaFX & SWT 8
S JPopupMenu schließen in SystemTray AWT, Swing, JavaFX & SWT 2
D Fenster schließen AWT, Swing, JavaFX & SWT 7
S AWT Fenster schließen und Programm beenden AWT, Swing, JavaFX & SWT 10
F Swing JFrame Methode beim Schließen aufrufen AWT, Swing, JavaFX & SWT 5
2 Zusätzliches Fenster mit OK-Button schließen AWT, Swing, JavaFX & SWT 7
B Fenster schließen AWT, Swing, JavaFX & SWT 4
N Swing Von 2 dimensionalem Array auf JTextfield schließen und färben AWT, Swing, JavaFX & SWT 6
E JWindow bewegen, minimieren, vergrößern und schließen AWT, Swing, JavaFX & SWT 5
W Swing Event bei Schließen des Fensters AWT, Swing, JavaFX & SWT 6
I Fenster schließen - Button AWT, Swing, JavaFX & SWT 13
S Swing JPopupMenu nicht schließen AWT, Swing, JavaFX & SWT 2
G Swing Fenster schließen AWT, Swing, JavaFX & SWT 6
R WindowClosing Event - Schließen rückgängig machen? AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben