| 
 
     Project Test Riverlayout :: working example jgoodies binding remove and load jpanels 
 Test RiverLayout :: (pics dir: see bottom)
 Package beans
 1.SingleForm.java
 2.TripleForm.java
 
 Package forms.masterforms
 1.SingleMasterForm.java
 2.TripleMasterForm.java
 
 Package se.datadosen
 > Download
riverlayout.zip
 Package src
 1.MenuBar.java
 2.OpeningForm.java
 
 
 Package testen
 1.RiverLayoutTest.java
   CODE: SingleForm.java package beans; /** Copyright (c) 2008 - 2008 willems piet pwProTech  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 *
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 import com.jgoodies.binding.beans.Model; //This configuration is more advanced then the tripleform bean and uses JGoodies beans.model public class SingleForm extends Model {String name, street, nr, towncity, occupation;
	public String getName() {return name;
 }
	public void setName(String name) {this.name = name;
 }
	public String getNr() {return nr;
 }
	public void setNr(String nr) {this.nr = nr;
 }
	public String getOccupation() {return occupation;
 }
	public void setOccupation(String occupation) {this.occupation = occupation;
 }
	public String getStreet() {return street;
 }
	public void setStreet(String street) {this.street = street;
 }
	public String getTowncity() {return towncity;
 }
	public void setTowncity(String towncity) {this.towncity = towncity;
 }
} 
TripleForm.java package beans; /** Copyright (c) 2008 - 2008 willems piet pwProTech  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 *
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 import java.beans.PropertyChangeListener; import com.jgoodies.binding.beans.ExtendedPropertyChangeSupport; public class TripleForm {	//ToDo :: see singlemasterform : extends Model 	String username, age, comment; 	boolean menuItemEnabled; 	private ExtendedPropertyChangeSupport changeSupport = new ExtendedPropertyChangeSupport(this);
 	public String getUsername() {return username;
 }
	public void setUsername(String username) {String oldValue = username;
 this.username = username;
 changeSupport.firePropertyChange("stringValue", oldValue, username);
 System.out.println(username);
 }
	public String getAge() {return age;
 }
	public void setAge(String age) {String oldValue = age;
 this.age = age;
 changeSupport.firePropertyChange("stringValue", oldValue, age);
 System.out.println(age);
 }
	public String getComment() {return comment;
 }
	public void setComment(String comment) {String oldValue = comment;
 this.comment = comment;
 changeSupport.firePropertyChange("stringValue", oldValue, comment);
 System.out.println(comment);
 }
	public void addPropertyChangeListener(PropertyChangeListener x) {changeSupport.addPropertyChangeListener(x);
 }
	public void removePropertyChangeListener(PropertyChangeListener x) {changeSupport.removePropertyChangeListener(x);
 }
	public boolean isMenuItemEnabled() {return menuItemEnabled;
 }
	public void setMenuItemEnabled(boolean menuItemEnabled) {this.menuItemEnabled = menuItemEnabled;
 }
}   
SingleMasterForm.java package forms.masterforms; /** Copyright (c) 2008 - 2008 willems piet pwProTech  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 *
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 import java.awt.event.ActionEvent;import java.awt.event.ActionListener;
 import javax.swing.JButton;import javax.swing.JFrame;
 import javax.swing.JLabel;
 import javax.swing.JMenuItem;
 import javax.swing.JPanel;
 import javax.swing.JTextField;
 import se.datadosen.component.RiverLayout;import src.MenuBar;
 import beans.SingleForm;
 import com.jgoodies.binding.adapter.BasicComponentFactory;import com.jgoodies.binding.beans.BeanAdapter;
 import com.jgoodies.binding.value.ValueModel;
 import com.jgoodies.forms.factories.Borders;
 public class SingleMasterForm {	private String CMD_OK = "cmd.ok"/* NOI18N */; 	private JButton okButton; 	public JPanel buildform(final JFrame f, final JMenuItem menuitem) {okButton = new JButton();
 okButton.setText("ok");
 okButton.setActionCommand(CMD_OK);
 okButton.addActionListener(new ActionListener() {
 public void actionPerformed(ActionEvent event) {
 // windowAction(event);
 System.out
 .println("ACTION : BUTTON OK WAS CLICKED and Menu item enabled");
 System.out.println(okButton.getActionCommand());
 menuitem.setEnabled(true);//and close
 MenuBar.FrameClearAction(f);
 }
 });
		SingleForm bean = new SingleForm();BeanAdapter adapter = new BeanAdapter(bean, true);
 		ValueModel nameModel = adapter.getValueModel("name");ValueModel streetModel = adapter.getValueModel("street");
 ValueModel nrModel = adapter.getValueModel("nr");
 ValueModel towncityModel = adapter.getValueModel("towncity");
 ValueModel occupationModel = adapter.getValueModel("occupation");
		JTextField nameinput = BasicComponentFactory.createTextField(nameModel);JTextField streetinput = BasicComponentFactory
 .createTextField(streetModel);
 JTextField nrinput = BasicComponentFactory.createTextField(nrModel);
 JTextField towncityinput = BasicComponentFactory
 .createTextField(towncityModel);
 JTextField occupationinput = BasicComponentFactory
 .createTextField(occupationModel);
 		// Panel 		// SingleMasterFormJPanel SingleMasterForm = new JPanel();
 SingleMasterForm.setLayout(new RiverLayout());
 SingleMasterForm.add("right", new JLabel("Single Form demo"));
 SingleMasterForm.add("p left", new JLabel("Name"));
 SingleMasterForm.add("tab hfill", nameinput);
 SingleMasterForm.add("br", new JLabel("Street"));
 SingleMasterForm.add("tab hfill", streetinput);
 SingleMasterForm.add("br vtop", new JLabel("nr"));
 SingleMasterForm.add("tab", nrinput);
 nrinput.setColumns(5);
 SingleMasterForm.add("br vtop", new JLabel("Town/City"));
 SingleMasterForm.add("tab hfill", towncityinput);
 SingleMasterForm.add("br vtop", new JLabel("Occupation"));
 SingleMasterForm.add("tab hfill", occupationinput);
 SingleMasterForm.add("p right", okButton);
 SingleMasterForm.setBorder(Borders.DIALOG_BORDER);
 		return SingleMasterForm;}
 }
   
TripleMasterForm.java
 package forms.masterforms; /** Copyright (c) 2008 - 2008 willems piet pwProTech  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 *
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 import java.awt.event.ActionEvent;import java.awt.event.ActionListener;
 import javax.swing.JButton;import javax.swing.JFrame;
 import javax.swing.JLabel;
 import javax.swing.JMenuItem;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
 import javax.swing.JSplitPane;
 import javax.swing.JTextArea;
 import javax.swing.JTextField;
 import javax.swing.border.EmptyBorder;
 import se.datadosen.component.RiverLayout;import src.MenuBar;
 import beans.TripleForm; import com.jgoodies.binding.adapter.BasicComponentFactory;import com.jgoodies.binding.beans.BeanAdapter;
 import com.jgoodies.binding.value.ValueModel;
 import com.jgoodies.forms.factories.Borders;
 public class TripleMasterForm extends TripleForm {	private String CMD_OK = "cmd.ok"/* NOI18N */; 	private JButton okButton, ok1Button, ok2Button; 	public JPanel formRegistration(final JFrame f, final JMenuItem menuitem) {okButton = new JButton();
 okButton.setText("ok");
 okButton.setActionCommand(CMD_OK);
		okButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent event) {
 // windowAction(event);
 System.out
 .println("ACTION : BUTTON OK WAS CLICKED and menu item enabled");
 System.out.println(okButton.getActionCommand());
 menuitem.setEnabled(true);//and close
 MenuBar.FrameClearAction(f);
 }
 });
		ok1Button = new JButton();ok1Button.setText("ok 1");
 ok1Button.setActionCommand(CMD_OK);
 ok1Button.addActionListener(new ActionListener() {
 public void actionPerformed(ActionEvent event) {
 // windowAction(event);
 System.out.println("ACTION : BUTTON 1 OK WAS CLICKED");
 System.out.println(ok1Button.getActionCommand());
 menuitem.setEnabled(true);//and close
 MenuBar.FrameClearAction(f);
 }
 });
 		ok2Button = new JButton(); // we'll need this soonok2Button.setText("ok 2");
 ok2Button.setActionCommand(CMD_OK);
 ok2Button.addActionListener(new ActionListener() {
 public void actionPerformed(ActionEvent event) {
 // windowAction(event);
 System.out.println("ACTION : BUTTON 2 OK WAS CLICKED");
 System.out.println(ok2Button.getActionCommand());
 menuitem.setEnabled(true);//and close
 MenuBar.FrameClearAction(f);
 }
 });
 		TripleForm bean = new TripleForm();BeanAdapter adapter = new BeanAdapter(bean, true);
 		ValueModel nameModel = adapter.getValueModel("username");ValueModel ageModel = adapter.getValueModel("age");
 ValueModel commentModel = adapter.getValueModel("comment");
		JTextField userinput = BasicComponentFactory.createTextField(nameModel);JTextField ageinput = BasicComponentFactory.createTextField(ageModel);
 JTextArea commentinput = BasicComponentFactory
 .createTextArea(commentModel);
 		ValueModel nameModel01 = adapter.getValueModel("username");ValueModel ageModel01 = adapter.getValueModel("age");
 ValueModel commentModel01 = adapter.getValueModel("comment");
		JTextField userinput01 = BasicComponentFactory.createTextField(nameModel01);
 JTextField ageinput01 = BasicComponentFactory
 .createTextField(ageModel01);
 JTextArea commentinput01 = BasicComponentFactory
 .createTextArea(commentModel01);
 		ValueModel nameModel02 = adapter.getValueModel("username");ValueModel ageModel02 = adapter.getValueModel("age");
 ValueModel commentModel02 = adapter.getValueModel("comment");
		JTextField userinput02 = BasicComponentFactory.createTextField(nameModel02);
 JTextField ageinput02 = BasicComponentFactory
 .createTextField(ageModel02);
 JTextArea commentinput02 = BasicComponentFactory
 .createTextArea(commentModel02);
 		// Panel 1 = left + center 		// leftJPanel left = new JPanel();
 left.setLayout(new RiverLayout());
 left.add("right", new JLabel("Registration form left"));
 left.add("p left", new JLabel("Name"));
 left.add("tab hfill", userinput);
 left.add("br", new JLabel("Age"));
 ageinput.setColumns(5);
 left.add("tab", ageinput);
 left.add("br vtop", new JLabel("Comment"));
 commentinput.setRows(3);
 left.add("tab hfill vfill", new JScrollPane(commentinput));
 left.add("p right", okButton);
 // added to level the content of the 3 panels
 left.setBorder(Borders.DIALOG_BORDER);
 		// centerJPanel center = new JPanel();
 center.setLayout(new RiverLayout());
 center.add("right", new JLabel("Registration form center"));
 center.add("p left", new JLabel("Name-center"));
 center.add("tab hfill", userinput01);
 center.add("br", new JLabel("Age-center"));
 ageinput01.setColumns(2);
 center.add("tab", ageinput01);
 center.add("br vtop", new JLabel("Comment-center"));
 center.add("tab hfill vfill", new JScrollPane(commentinput01));
 center.add("p right", ok1Button);
 center.add(left);
 // added to level the content of the 3 panels
 center.setBorder(Borders.DIALOG_BORDER);
 		JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,left, center);
 JPanel panel1 = new JPanel();
 panel1.setLayout(new RiverLayout());
 splitPane.setBorder(new EmptyBorder(-10, -5, -20, -8));
 //splitPane.setDividerLocation(150);
 //splitPane.setOneTouchExpandable(true);
 splitPane.setDividerSize(3);
 panel1.add("hfill vfill", splitPane);
 		JPanel right = new JPanel();right.setLayout(new RiverLayout());
 right.add("right", new JLabel("Registration form right"));
 right.add("p left", new JLabel("Name-right"));
 right.add("tab hfill", userinput02);
 right.add("br", new JLabel("Age-right"));
 ageinput02.setColumns(3);
 right.add("tab", ageinput02);
 right.add("br vtop", new JLabel("Comment-right"));
 right.add("tab hfill vfill", new JScrollPane(commentinput02));
 right.add("p right", ok2Button);
 // added to level the content of the 3 panels
 right.setBorder(new EmptyBorder(6, 0, 6, 0));
 		JSplitPane splitPane0 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,panel1, right);
 		splitPane0.setBorder(new EmptyBorder(-4, 0, -10, 0));splitPane0.setDividerSize(3);
 		//RegistrationMasterForm 		JPanel masterform = new JPanel();masterform.setLayout(new RiverLayout());
 masterform.add("vfill hfill", splitPane0);
 		return masterform;}
 }
   
MenuBar.java package src; /** Copyright (c) 2008 - 2008 willems piet pwProTech  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 *
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 import java.awt.event.ActionEvent;import java.awt.event.ActionListener;
 import java.awt.event.KeyEvent;
 import javax.swing.ImageIcon;import javax.swing.JFrame;
 import javax.swing.JLabel;
 import javax.swing.JMenu;
 import javax.swing.JMenuBar;
 import javax.swing.JMenuItem;
 import javax.swing.KeyStroke;
 import se.datadosen.component.RiverLayout;import forms.masterforms.SingleMasterForm;
 import forms.masterforms.TripleMasterForm;
 public class MenuBar {protected JMenuBar menuBar;
	public JMenuBar MenuBarRegistration(JFrame frame) {//send to where the GUI is created:
 //Call : frame.setJMenuBar( MenuBarRegistration(frame));
		JMenu menu, submenu;JMenuItem menuItem1, menuItem2, menuItem3, menuItem4, menuItem5, menuItem51, menuItem52;
 		//Create the menu bar.menuBar = new JMenuBar();
 		//Build the first menu.menu = new JMenu("TestMenu 1");
 menu.setMnemonic(KeyEvent.VK_A);
 //menu.getAccessibleContext().setAccessibleDescription(
 //       "The only menu in this program that has menu items");
 menuBar.add(menu);
 		//a group of JMenuItemsmenuItem1 = new JMenuItem("Clear test", KeyEvent.VK_T);
 menuItem1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1,
 ActionEvent.ALT_MASK));
 menuItem1.setName("een");
 menu.add(menuItem1);
 		//  Text - icon samplemenuItem2 = new JMenuItem("Single form", new ImageIcon(
 "images/yourpic.gif"));
 		menuItem2.setMnemonic(KeyEvent.VK_B);menuItem2.setName("singlemasterform");
 menu.add(menuItem2);
 		menuItem3 = new JMenuItem("Triple form", new ImageIcon("images/yourpic.gif"));
 menuItem3.setMnemonic(KeyEvent.VK_B);
 menuItem3.setName("twee");
 menu.add(menuItem3);
		menuItem5 = new JMenuItem(new ImageIcon("images/yourpic.gif"));//Only icon dample
 menuItem5.setMnemonic(KeyEvent.VK_D);
 menu.add(menuItem3);
		//a submenumenu.addSeparator();
 submenu = new JMenu("Submenu sample");
 submenu.setMnemonic(KeyEvent.VK_S);
 		menuItem51 = new JMenuItem("Submenu item 1 sample");menuItem51.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2,
 ActionEvent.ALT_MASK));
 submenu.add(menuItem51);
		menuItem52 = new JMenuItem("Submenu item 2 sample");submenu.add(menuItem52);
 menu.add(submenu);
		//Build second menu in the menu bar.menu = new JMenu("TestMenu 2");
 menu.setMnemonic(KeyEvent.VK_N);
 menuBar.add(menu);
 		//Adding action listener to menu items//------------------------------------
 menuAction(menuItem1, frame);
 menuAction(menuItem2, frame);
 menuAction(menuItem3, frame);
 		menuItem51.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {
 System.out.println("SubmenuItem 1 is pressed");
 }
 });
 menuItem52.addActionListener(new ActionListener() {
 public void actionPerformed(ActionEvent e) {
 System.out.println("SubmenuItem 2 is pressed");
 }
 });
		return menuBar; 	} 	private void menuAction(final JMenuItem menuItem, final JFrame f) {menuItem.addActionListener(new ActionListener() {
 public void actionPerformed(ActionEvent e) {
 String action = menuItem.getName();
 System.out.println("action" + action);
 if (action.equals("een")) {
 menuSelectionClearContentPane(f);
 } else if (action.equals("twee")) {
 menuSelectionTripleMasterForm(menuItem, f);
 } else if (action.equals("singlemasterform")) {
 menuSelectionSingleMasterForm(menuItem, f);
 }
 }
			private void menuSelectionClearContentPane(final JFrame f) {enableItemsMenu0();
 FrameClearAction(f);
 System.out.println(f.getName() + " is Cleared");
 }
			private void menuSelectionSingleMasterForm(final JMenuItem menuItem, final JFrame f) {
 enableItemsMenu0();
 menuItem.setEnabled(false);
 f.getContentPane().removeAll();
 SingleMasterForm smf = new SingleMasterForm();
 f.setLayout(new RiverLayout());
 f.getContentPane().add("hfill vfill",
 smf.buildform(f, menuItem));
 System.out.println(f.getName() + " is installed");
 f.validate();
 f.repaint();
 }
 			private void menuSelectionTripleMasterForm(final JMenuItem menuItem, final JFrame f) {
 enableItemsMenu0();
 menuItem.setEnabled(false);
 f.getContentPane().removeAll();
 TripleMasterForm rmf = new TripleMasterForm();
 rmf.setMenuItemEnabled(false);
 f.setLayout(new RiverLayout());
 f.getContentPane().add("hfill vfill",
 rmf.formRegistration(f, menuItem));
 System.out.println(f.getName() + " is installed");
 f.validate();
 f.repaint();
 }
 			private void enableItemsMenu0() {//ToDo name the item indexes
 getMenuItem(0, 0).setEnabled(true);
 getMenuItem(0, 1).setEnabled(true);
 getMenuItem(0, 2).setEnabled(true);
 }
 });
 }
	public static void FrameClearAction(JFrame f) {		f.getContentPane().removeAll();f.getContentPane().setLayout(new RiverLayout());
 f.getContentPane().add(new JLabel("Frame Cleared"));
 f.validate();
 f.repaint();
 		System.out.println("pass" + f.getContentPane().getComponents());}
	protected JMenuItem getMenuItem(int menuIndex, int itemIndex) {//JMenuBar menuBar;
 JMenu menu = menuBar.getMenu(menuIndex);
 System.out.println(menu.getName());
 return menu.getItem(itemIndex);
 }
}   OpeningForm.java
 package src; /** Copyright (c) 2008 - 2008 willems piet pwProTech  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 *
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 import java.awt.Dimension;import java.awt.Font;
 import javax.swing.JLabel;import javax.swing.JPanel;
 import se.datadosen.component.RiverLayout; public class OpeningForm {public static JPanel buildForm() {
 JPanel openingPanel = new JPanel();
 openingPanel.setLayout(new RiverLayout());
 
 
        JLabel infoLabel = new JLabel();JLabel gapLabel = new JLabel();
         gapLabel.setPreferredSize(new Dimension(150, 240));infoLabel.setPreferredSize(new Dimension(400, 240));
 infoLabel.setFont(new Font("sansserif", Font.BOLD, 32));
 infoLabel.setText("Test Riverlayout");
 openingPanel.add("p" , gapLabel);
 openingPanel.add("tab" , infoLabel);
 return openingPanel;
 }
 }
   
RiverLayoutTest.java package testen; /** Copyright (c) 2008 - 2008 willems piet pwProTech  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 *
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 import java.awt.*;import java.awt.event.*;
 import javax.swing.*;
 import com.jgoodies.forms.factories.Borders; import beans.TripleForm; import se.datadosen.component.RiverLayout;import src.MenuBar;
 /* TopLevelDemo.java requires no other files. */public class RiverLayoutTest {
 /**
 * Create the GUI and show it.
 */
 private static void createAndShowGUI() {
 //Create and set up the window.
 JFrame frame = new JFrame("Test Layout");
 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 frame.getContentPane().setLayout(new RiverLayout());
 		//Set the menu bar and add the openingForm to the content pane.frame.setJMenuBar(new MenuBar().MenuBarRegistration(frame));
 frame.getContentPane().add("hfill", src.OpeningForm.buildForm());
 		//Display the window.frame.setLocation(150, 200);
 frame.pack();
 frame.setVisible(true);
 }
 	public static void main(String[] args) {//creating and showing this application's GUI.
 javax.swing.SwingUtilities.invokeLater(new Runnable() {
 public void run() {
 createAndShowGUI();
 }
 });
 }
 }
 Tags : RiverLayout , sample , java , example , jgoodies , valuemodel, model 
   
 
    29-05-2008 om 00:00 geschreven door de makers
 |