zur Verfügung stehenden Platz ausfüllen

Status
Nicht offen für weitere Antworten.

MichiM

Bekanntes Mitglied
Hi,

wie teilt man Swing-Komponenten oder deren Containern, in den Sie eingebettet sind, mit, dass der zur Verfügung stehende Platz ausgefüllt werden soll (-> width bzw. height = 100%) ? setPreferredSize will ja absolute Angaben.
Ich versuch hier, in ein JSplitPane ein JPanel mit weißem Hintergrund einzufügen, aber das JPanel ist hier zunächst mal nur genauso groß wie dessen Inhalt (Grafik mit weißem Hintergrund), sollte aber wunschgemäß so groß sein wie der zur Verfügung stehende Platz für diesen JSplitPane-Bereich, der aus den sonstigen Gegebenheiten wie z.B. Breite des anderen (breiteren) JSplitPane-Bereichs resultiert.

Code:
StromkreisGrafik = new ImageIcon ( ImageIO.read ( StromkreisApplet.class.getResource ( Stromkreis.Grafik_Ressource() ) ) );
JLabel StromkreisGrafikLabel = new JLabel ( StromkreisGrafik ); //
StromkreisGrafikLabel.setBackground ( new Color ( 248, 248, 248 ) ); // deswegen wird der JSplitPane-Bereich-Hintergrund jedoch auch nicht weißer... :/
StromkreisGrafikLabel.setForeground ( new Color ( 248, 248, 248 ) ); 
//StromkreisGrafikLabel.setPreferredSize ( new Dimension ( 700, 400 ) );   <-- bringt ja so auch nix, da absolute Angabe - Wie geht das relativ?
				  				  	
JSplitPane splitPane = new JSplitPane
(
    	     JSplitPane.VERTICAL_SPLIT,
    	     StromkreisGrafikLabel,
    	     DatenPane 
);

Gruß Michi
 

Bohne

Aktives Mitglied
Du kannst die Größe in Pixeln von der Komponente, die die SplitPane (oder was auch immer...) einbindet, ja mit getSize() oder getDimension() oder so ähnlich abfragen. Ich glaub getComponentPane().getDimensions(), aber bin mir nicht sicher, arbeite mich auch grad erst ein.
 

MichiM

Bekanntes Mitglied
Tag Bohne, :)

wenn ich das so versuche:

Code:
        JLabel StromkreisGrafikLabel = new JLabel ( StromkreisGrafik );
	 	 StromkreisGrafikLabel.setBackground ( new Color ( 248, 248, 248 ) );
	  	StromkreisGrafikLabel.setForeground ( new Color ( 248, 248, 248 ) );
		  				  				  	
	  	JSplitPane splitPane = new JSplitPane
	  	(
	    	     JSplitPane.VERTICAL_SPLIT,
	    	     StromkreisGrafikLabel,
	    	     DatenPane 
	     );
			    	  
	  	splitPane.setOneTouchExpandable ( true );
	  	BasisPanel.add ( splitPane );
			  	
	  	StromkreisGrafikLabel.setPreferredSize ( new Dimension ( splitPane.getWidth(), splitPane.getHeight() ) );

erscheint die obere Hälfte in der vertikalen SplitPane, also das "StromkreisGrafikLabel", gar nicht...
Was man bei so vermeintlich einfachen Sachen alles falsch machen kann? :)
Zu welchem Zeitpunkt stehen denn die Breite- und Höhe-Eigenschaft einer Komponente erst zur Verfügung?

Gruß Michi
 

Bohne

Aktives Mitglied
Hallo Michi,

ich bin mir nicht sicher, ob ich verstanden hab, was du willst, aber die Stelle, an der sich der Balken der SplitPane befinden soll, kannst du auf jeden Fall mit setDividerLocation() festlegen.

Da gibts glaub ich zwei Möglichkeiten: Einmal relativ zur momentanen Platzierung und absolut, welche du verwenden müsstest. Um das zu bestimmen kannst du die Breite vom Label mit getPrefferedSize().width abfragen.

Hat die SplitPane selbst schon die richtige Größe?
 

MichiM

Bekanntes Mitglied
Hi,

das, was ich erreichen wollte, habe ich nun erreicht, indem ich die Hintergrundfarbe des Objekts splitPane, nicht des Inhalts gesetzt habe.

Code:
splitPane.setBackground ( new Color ( 248, 248, 248 ) );

Aus irgendeinem Grund hat sich nichts getan, wenn ich versucht habe, die Hintergrundfarbe des von JLabel geformten Objekts auf weiß zu setzen, nachdem ich Breite versucht hab, auszudehnen.

(
Code:
StromkreisGrafikLabel.setBackground ( new Color ( 248, 248, 248 ) );
-> mag nich )

Was ich komisch finde... verbreitert, Hintergrundfarbe gesetzt und dennoch kein Unterschied... ???:L
Aber über das JSplitPane-Objekt gehts.

Gruß Michi
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
TheWhiteShadow JavaFX ScrollPane nimmt nicht genug platz ein AWT, Swing, JavaFX & SWT 3
L JavaFX Anderer Text, wenn kein Platz ist. AWT, Swing, JavaFX & SWT 1
R Swing JPanels auf JFrame auf verfügbaren Platz aufblasen AWT, Swing, JavaFX & SWT 4
GenerationLost Bilder an bestimmten Platz einfügen/Objekte visualisieren AWT, Swing, JavaFX & SWT 1
Kenan89 Border nimmt Platz AWT, Swing, JavaFX & SWT 17
I Swing JLabel - Platz schaffen AWT, Swing, JavaFX & SWT 10
L LayoutManager Componenten über verfügbaren Platz strecken AWT, Swing, JavaFX & SWT 7
R Swing Ausnutzung von vorhandenem Platz AWT, Swing, JavaFX & SWT 13
F LayoutManager GridBagLayout nutzt Platz nicht AWT, Swing, JavaFX & SWT 2
T Layoutmanager der vorhanden Platz beruecksichtigt? AWT, Swing, JavaFX & SWT 5
T paintComponent() überschreiben: Platz für Border freihalten? AWT, Swing, JavaFX & SWT 6
T GridLayout, zu wenig Platz zwischen Widgets AWT, Swing, JavaFX & SWT 3
R das letzte JLabel in der Schleife will nicht an seinen Platz AWT, Swing, JavaFX & SWT 2
F Benötigter Platz von Komponenten AWT, Swing, JavaFX & SWT 3
J Schriftgröße aus vorhandenem Platz berechnen AWT, Swing, JavaFX & SWT 9
K JFreeChart: Platz zwischen Balken AWT, Swing, JavaFX & SWT 3
Z bei kleinen Buttons verschwindet Schrift, obwohl Platz wäre AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen


Oben