warum ist die Höhe meines JPanels 0?

Status
Nicht offen für weitere Antworten.

OldSchool

Mitglied
Hi all :)

Hab folgendes Problem. Ich hab ein JPanel pCenter und eine splitpane und möchte dass der Balken der splitpane genau in der Mitte des JPanels liegt. Siehe dazu Code einkommentierter Teil.
Jedoch wird die splitpane ganz oben und nicht in der Mitte ausgelegt. Ich weiß auch warum. Wenn ich die Höhe von pCenter ausgeben, ist sie 0.0. Warum das?
Versteh ich nicht!


Code:
public class CourseCourseAnalysis extends JPanel implements GuiInterface {

  private JPanel pCenter;

  private JSplitPane splitPane;

  CourseAnalysisGUI courseAnalysisTop;

  CourseAnalysisGUI courseAnalysisBottom;

  public CourseCourseAnalysis(Mainmenu mainMenu, int rid1, int rid2,
				Connection con, ResourceBundle rb) {
    this.mainMenu = mainMenu;
    this.rb = rb;

    createComponents(rid1, rid2, con);
    initView();
  } // StudentStudentAnalysis()

  private void createComponents(int rid1, int rid2, Connection con) {
    pCenter = new JPanel();

    splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);

    courseAnalysisTop = new CourseAnalysisGUI(mainMenu, rid1, con, rb);
    courseAnalysisBottom = new CourseAnalysisGUI(mainMenu, rid2, con, rb);
  } // createComponents()

    
  private void initView() {

    //hole die CenterPanels von den CourseAnalysisGUI-Objekten
    JPanel panelTop = courseAnalysisTop.getCenterPanel();
    JPanel panelBottom = courseAnalysisBottom.getCenterPanel();

    //entferne die BackButtons
    removeBackPanel(panelTop);
    removeBackPanel(panelBottom);

    splitPane.setTopComponent(panelTop);
    splitPane.setBottomComponent(panelBottom);

    pCenter.setLayout(new BorderLayout());
    pCenter.add(splitPane, BorderLayout.CENTER);
    pCenter.add(pBack, BorderLayout.SOUTH);

    //----------------------------------------------    
    //DAS IST WICHTIG
    Dimension dim = pCenter.getSize();
    splitPane.setDividerLocation(dim.getHeight() / 2);

    System.out.println(dim.getHeight());
    //SYSTEM.OUT.PRINTLN LIEFERT 0.0! WARUM????
    //----------------------------------------------
    

    setVisible(true);
  } // initView()

} // CourseCourseAnalysis()
[/b]
 
B

Beni

Gast
Ich sehe niergends, dass du das pCenter irgendwo hinzufügst. Aber dann gilt das JPanel als "nicht benutzt", und daher wird auch nie irgendeine Methode aufgerufen, welche die Grösse verändert.

Also musst du das wohl von Hand machen: ruf mal ein "pCenter.validate" auf, und wenn das nichts hilft ein "pCenter.setSize( pCenter.getPreferredSize() );"
 
G

Guest

Gast
Aso, dass JPanel pCenter wird aufgefangen und in einem JFrame dargestellt. Hab nämlich alle unwichtigen Teile aus den Code gestrichen. Die Gui geht ja an und für sich.

Also hier zwei pics:

So siehts aus:
pic1.JPG

Der Trennbalken der Splitpane ist ganz oben, weil die Höhe 0.0 ist.

So solls aussehen:
pic2.JPG



Leider geht weder validate noch das andere.

Hab so und so probiert:

Code:
    ...    
    ...
    pCenter.setLayout(new BorderLayout());
    pCenter.add(splitPane, BorderLayout.CENTER);
    pCenter.add(pBack, BorderLayout.SOUTH);

    pCenter.validate();

    Dimension dim = pCenter.getSize();
    splitPane.setDividerLocation(dim.getHeight() / 2);
    ...
    ...

Code:
    ...
    ...    
    pCenter.setLayout(new BorderLayout());
    pCenter.add(splitPane, BorderLayout.CENTER);
    pCenter.add(pBack, BorderLayout.SOUTH);

    pCenter.setSize( pCenter.getPreferredSize() );

    Dimension dim = pCenter.getSize();
    splitPane.setDividerLocation(dim.getHeight() / 2);
    ...
    ...
Beim zweiten krieg ich überhaupt eine Exception
 
G

Guest

Gast
Die kommt:
In der Zeile 139, die er anzeigt steht splitPane.setDividerLocation(dim.getHeight() / 2);
Er hat da keinen gültigen Wert oder so


Code:
java.lang.IllegalArgumentException: proportional location must be between 0.0 and 1.0.
	at javax.swing.JSplitPane.setDividerLocation(JSplitPane.java:756)
	at aorta.analysis.compare.CourseCourseAnalysis.initView(CourseCourseAnalysis.java:139)
	at aorta.analysis.compare.CourseCourseAnalysis.<init>(CourseCourseAnalysis.java:86)
	at aorta.util.mainmenu.Mainmenu.changeCenterPanel(Mainmenu.java:366)
	at aorta.util.mainmenu.Mainmenu.chooseNextWindow(Mainmenu.java:249)
	at aorta.util.mainmenu.Menubar.actionPerformed(Menubar.java:263)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1764)
	at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1817)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:419)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257)
	at javax.swing.AbstractButton.doClick(AbstractButton.java:289)
	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1113)
	at javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseReleased(BasicMenuItemUI.java:943)
	at java.awt.Component.processMouseEvent(Component.java:5134)
	at java.awt.Component.processEvent(Component.java:4931)
	at java.awt.Container.processEvent(Container.java:1566)
	at java.awt.Component.dispatchEventImpl(Component.java:3639)
	at java.awt.Container.dispatchEventImpl(Container.java:1623)
	at java.awt.Component.dispatchEvent(Component.java:3480)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3450)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3165)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3095)
	at java.awt.Container.dispatchEventImpl(Container.java:1609)
	at java.awt.Window.dispatchEventImpl(Window.java:1590)
	at java.awt.Component.dispatchEvent(Component.java:3480)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
 
B

Beni

Gast
proportional location must be between 0.0 and 1.0.
dim.getHeight() / 2
Offenbar liegt der Wert den du hier einträgst nicht zwischen 0 und 1 (dim.getHeight gibt seltsamerweise ein double zurück, aber bei setDividerLocation wird ein double als verhältnis interpretiert).

Übergieb doch einfach mal 0.5 als Verhältnis.
 
G

Guest

Gast
Haut auch nicht hin!

Er interpretiert 0.5 nicht als Verhältnis, sondern schiebt die splitpane einfach um 0.5 runter.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Wie ermittele ich die Breite und Höhe meines Displays in Pixel AWT, Swing, JavaFX & SWT 3
L Swing TextPanel Schrift untereinander und auf einer Höhe AWT, Swing, JavaFX & SWT 3
Jose05 Javafx Label Höhe=Breite AWT, Swing, JavaFX & SWT 1
sascha-sphw JavaFX ListCell höhe verändert sich beim ändern der Text-Farbe AWT, Swing, JavaFX & SWT 14
X JavaFX AreaChart area höhe wird nicht richtig dargestellt AWT, Swing, JavaFX & SWT 2
R Java FX - Fxml - relative Größenangaben für Breite und Höhe einer TextArea AWT, Swing, JavaFX & SWT 8
J JavaFX TableView - Höhe der Zeilen AWT, Swing, JavaFX & SWT 3
B JFreeChart Gantt Höhe Tasks AWT, Swing, JavaFX & SWT 1
Z Java Draw -JFrame finde nicht die Mitte & höhe, breite AWT, Swing, JavaFX & SWT 7
S SWT TableCell mit Composite als Inhalt / Höhe der Cell/Row AWT, Swing, JavaFX & SWT 5
T Swing JScrollPane in JPanel - Breite dynamisch, Höhe fix - wie? AWT, Swing, JavaFX & SWT 2
A LayoutManager Höhe von NORTH beim BorderLayout ändern AWT, Swing, JavaFX & SWT 4
T LayoutManager GridBagLayout - zwei jTable mit unterschiedlicher Höhe AWT, Swing, JavaFX & SWT 2
N Swing Optimale Höhe eine JTextPanes bei festgelegter Breite bestimmen AWT, Swing, JavaFX & SWT 23
P Höhe der TitleBar vom JFrame AWT, Swing, JavaFX & SWT 2
Landei Swing JToolbar: Textfelder mit normaler Höhe? AWT, Swing, JavaFX & SWT 2
T jpanel höhe netbeans.... AWT, Swing, JavaFX & SWT 5
J Problem mit der Höhe eines Panels AWT, Swing, JavaFX & SWT 11
G Swing Höhe des View eines JScrollPane fest auf Höhe des JScrollPane setzen! AWT, Swing, JavaFX & SWT 4
H LayoutManager Auf gleicher Höhe anordnen AWT, Swing, JavaFX & SWT 4
_dp jTextArea/jTextPanel Auto Höhe AWT, Swing, JavaFX & SWT 5
D JPanel höhe setzen AWT, Swing, JavaFX & SWT 2
H variable Höhe einer JTextArea (als Renderer/Editor) als Zelle einer JTable AWT, Swing, JavaFX & SWT 9
F Swing Höhe eines Headers einer JTable anpassen AWT, Swing, JavaFX & SWT 4
N Höhe einstellen JScrollPane AWT, Swing, JavaFX & SWT 3
F 2D-Grafik Problem mit höhe||breite eines JFrames AWT, Swing, JavaFX & SWT 4
G JTable Multiple Row Header Example - Probleme mit der Höhe der Zellen AWT, Swing, JavaFX & SWT 4
E Wie Breite und Höhe eines Panels festlegen? AWT, Swing, JavaFX & SWT 5
S Für Breite und Höhe werden 0.0 angezeigt AWT, Swing, JavaFX & SWT 2
C Swing JTextArea mit fester Breite und angepasster Höhe??? AWT, Swing, JavaFX & SWT 8
B Höhe eines Buttons festlegen AWT, Swing, JavaFX & SWT 7
G JList Höhe? AWT, Swing, JavaFX & SWT 2
P Breite und Höhe des contentPane abfragen AWT, Swing, JavaFX & SWT 3
Y Einzigartigkeit des GridBagLayout - individuelle Höhe/Breite AWT, Swing, JavaFX & SWT 4
S Tabelle soll sich auch in der Höhe resizen? AWT, Swing, JavaFX & SWT 4
T Breite des Containers ist gegeben - wie die Höhe berechnen? AWT, Swing, JavaFX & SWT 3
H JTabbedPane Höhe-Problem AWT, Swing, JavaFX & SWT 3
S [BorderLayout]WEST/EAST sollen über ganze Höhe gehen; AWT, Swing, JavaFX & SWT 3
G Linie nach Höhe einer Zahl zeichnen? AWT, Swing, JavaFX & SWT 3
A JTextFiled-Breite und Höhe ändern AWT, Swing, JavaFX & SWT 3
S Feste Breite und Höhe für einen formatierten Text. AWT, Swing, JavaFX & SWT 5
G Höhe eines JPanels ermittlen AWT, Swing, JavaFX & SWT 3
S JFrame Fenster höhe der Titelzeile? AWT, Swing, JavaFX & SWT 13
G Klasse Image - Höhe und Breite ermitteln AWT, Swing, JavaFX & SWT 12
B BorderLayout.WEST (JTree strecken in Höhe) AWT, Swing, JavaFX & SWT 2
D Jtable Header Höhe setzen ? AWT, Swing, JavaFX & SWT 2
B JEditorPane: Höhe für bestimmte Breite bestimmen AWT, Swing, JavaFX & SWT 4
M Höhe von eines Strings in Pixeln (nicht Höhe einer Zeile) AWT, Swing, JavaFX & SWT 12
K Höhe und Breite eines Panels im GridBagLayout ermitteln AWT, Swing, JavaFX & SWT 9
javasdann Höhe von Titlebar in jInternalFrame ändern AWT, Swing, JavaFX & SWT 5
J DefaultTableCellRenderer & Höhe AWT, Swing, JavaFX & SWT 3
D JLabel mit fester Breite und beliebiger Höhe AWT, Swing, JavaFX & SWT 4
L wie kann man die Höhe und Breite von JList festlegen AWT, Swing, JavaFX & SWT 3
C Titel-Balken höhe?! AWT, Swing, JavaFX & SWT 4
C Höhe der Titelleiste in JInternalFrame AWT, Swing, JavaFX & SWT 4
M Swing Inhalt meines JTables wird falsch dargestellt AWT, Swing, JavaFX & SWT 8
P LayoutManager Design meines Projekts (hätte wer zeit?) AWT, Swing, JavaFX & SWT 9
B Performanceprobleme meines Spiels AWT, Swing, JavaFX & SWT 5
Apfelbaum2005 Swing JFrame mehrere JPanels mit unterschiedlichen Formen hinzufügen AWT, Swing, JavaFX & SWT 1
B viele JPanels auf JLayeredPane -> to SVG? AWT, Swing, JavaFX & SWT 15
CptK JPanels übereinander legen AWT, Swing, JavaFX & SWT 6
CptK JPanels wechseln AWT, Swing, JavaFX & SWT 2
B Minimum x und y von Children-JPanels ermitteln AWT, Swing, JavaFX & SWT 3
L Swing JPanels werden nicht angezeigt! AWT, Swing, JavaFX & SWT 7
P Swing Mehrere JPanels auf ein JFrame hinzufügen? AWT, Swing, JavaFX & SWT 2
A Swing JPanels dynamisch untereinander einfügen AWT, Swing, JavaFX & SWT 3
J bestimmten Bereich eines JPanels drucken AWT, Swing, JavaFX & SWT 2
R Swing JPanels auf JFrame auf verfügbaren Platz aufblasen AWT, Swing, JavaFX & SWT 4
C LayoutManager Bei verkleinern des Fensters, verschieben sich JPanels übereinander. AWT, Swing, JavaFX & SWT 7
K Swing Inhalt eines JPanels lesen AWT, Swing, JavaFX & SWT 3
R Swing Bewegung eines Graphics Objektes innerhalb eines JPanels funktioniert nicht richtig AWT, Swing, JavaFX & SWT 2
W Swing Farbige JPanels auf JFrame werden nicht gezeigt. Was mach ich falsch? AWT, Swing, JavaFX & SWT 7
N Swing CardLayout: Problem beim Wechsel zwischen den JPanels AWT, Swing, JavaFX & SWT 3
F Swing JPanels übereinander ohne Mananger AWT, Swing, JavaFX & SWT 1
K Swing Klassenstruktur mit mehreren JPanels AWT, Swing, JavaFX & SWT 3
S Swing Navigation durch JPanels AWT, Swing, JavaFX & SWT 0
S Bei BoxLayout haben hinzugefügten Jpanels einen Versatz/Space AWT, Swing, JavaFX & SWT 0
B Größer-/Kleinerziehen eines JFrames/JPanels erkennen AWT, Swing, JavaFX & SWT 2
C Bei Btn Klick zwei JPanels switchen AWT, Swing, JavaFX & SWT 14
M Swing Aktualisieren eines JPanels nach Tasteneingabe AWT, Swing, JavaFX & SWT 2
S Liste von JPanels mit festen Höhen AWT, Swing, JavaFX & SWT 3
I Rechteck eines Graphics eines JPanels in einem anderen JPanel anzeigen AWT, Swing, JavaFX & SWT 7
S Swing Kopie eines JPanels inkl. aller objekte darin erstellen AWT, Swing, JavaFX & SWT 5
S Aufteilung von JPanels in einem Frame AWT, Swing, JavaFX & SWT 13
F Event Handling Kommunikation eines JButton ueber JPanels hinaus AWT, Swing, JavaFX & SWT 6
S Swing Drag&Drop mit TransferHandler und JPanels AWT, Swing, JavaFX & SWT 8
Jats Zeichen auf mehrere JPanels AWT, Swing, JavaFX & SWT 7
A Swing Aktualisieren eines JPanels AWT, Swing, JavaFX & SWT 13
N Abspeichern eines kompletten JPanels AWT, Swing, JavaFX & SWT 57
S Swing Zwischenräume zwischen JPanels AWT, Swing, JavaFX & SWT 4
H Verschiedene JPanels aus eigenen Klassen in JFrame einfügen, nur ein Panel sichtbar AWT, Swing, JavaFX & SWT 4
X zwischen 2 JPanels "elegant" wechseln AWT, Swing, JavaFX & SWT 3
S Swing MVC Ein JFrame, mehrere JPanels AWT, Swing, JavaFX & SWT 6
K JButtons innerhalb eines JPanels verschieben (DRAG&DROP) AWT, Swing, JavaFX & SWT 5
T jPanels im jFrame bewegen - Auch ohne Textfield? AWT, Swing, JavaFX & SWT 4
G ein JTextArea in zwei JPanels AWT, Swing, JavaFX & SWT 2
W Swing JFrame mit unterschiedlichen JPanels AWT, Swing, JavaFX & SWT 2
D Grafik über JPanels hinweg verschieben AWT, Swing, JavaFX & SWT 2
C klassenübergreifende JPanels auf ein JFrame AWT, Swing, JavaFX & SWT 22
X Alle Components eines JPanels Enablen AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen

Neue Themen


Oben