Hello, I'm adding a JSplitPane to a JPanel within a frame, and the frame has a JMenuBar added. I'm now adding a JPanel component which embeds a PApplet component (processing from processing.org) which extends Applet to the JSplitPane. It doesn't seem to work even though I've added
/** * Handle mix of heavyweight ({@link PApplet}) and leightweight ( {@link JMenuBar}) components. */ public void handleHLWeight() { final Container parent = mView.component().getParent(); if (parent instanceof JComponent) { ((JComponent)parent).revalidate(); } final Window window = SwingUtilities.getWindowAncestor(this); if (window != null) { window.validate(); } } to the embedded view which is for instance called within draw(), a method which is called frameRate(int)-times per second. Without the JSplitPane it seems fine, but now I'm adding another view side by side and it doesn't work anymore :( Well to recap the setup: View extends JPane => is inserted in a JSplitPane. View embeds a PApplet instance via (add(Component)). JSplitPane is inserted in a JPane and added to the contentPane of a JFrame instance together with a JMenuBar instance (via setJMenuBar(JMenuBar)). I'm using Java7. johannes@luna:~/workspace/treetank$ java -version java version "1.7.0" Java(TM) SE Runtime Environment (build 1.7.0-b147) Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode) The setup of the JSplitPane is as follows: /** * Setup of the {@link JSplitPane} reference. * * @param paramPane * {@link JSplitPane} reference * @param paramTmpView * {@link JComponent} reference to the left * @param paramView * {@link JComponent} reference to the right */ private void setupPane(final JSplitPane paramPane, final JComponent paramTmpView, final JComponent paramView) { assert paramPane != null; assert paramTmpView != null; assert paramView != null; paramPane.setSize(new Dimension(mGUI.getWidth(), mGUI.getHeight())); paramPane.setAlignmentX(mGUI.getWidth() / 2f); paramPane.setAlignmentY(mGUI.getHeight() / 2f); paramPane.setDividerLocation(0.5); paramPane.setContinuousLayout(true); paramPane.setLeftComponent(paramTmpView); paramPane.setRightComponent(paramView); paramPane.addPropertyChangeListener(JSplitPane.DIVIDER_LOCATION_PROPERTY, new Listener(paramPane)); final Container parent = paramPane.getParent(); if (parent instanceof JComponent) { ((JComponent)parent).revalidate(); } final Window window = SwingUtilities.getWindowAncestor(this); if (window != null) { window.validate(); } } I'm not sure, I thing the final code is useless with revalidate() and so on. kind regards, Johannes