How to define the length of a JTextField by using the RiverLayout - a simple and flexible Java Layout Manager- and the JGoodies binding
sample:
imports :
import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.beans.PropertyChangeListener;
import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField;
import com.jgoodies.binding.adapter.BasicComponentFactory; import com.jgoodies.binding.beans.BeanAdapter; import com.jgoodies.binding.beans.ExtendedPropertyChangeSupport; import com.jgoodies.binding.value.ValueModel;
import se.datadosen.component.RiverLayout;
...
public Container formRiverLayout(JFrame f) { 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"); System.out.println(okButton.getActionCommand()); } });
Registration bean = new Registration(); 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); ageinput.setColumns(3); // When this configuration isn't done the BasicComponentFactory //will not configure the width and the JTextField will be redused to //a few millimeter. JTextArea commentinput = BasicComponentFactory.createTextArea(commentModel);
Container c = f.getContentPane(); c.setLayout(new RiverLayout()); c.add("right", new JLabel("Registration form")); c.add("p left", new JLabel("Name")); c.add("tab hfill", userinput); c.add("br", new JLabel("Age")); c.add("tab", ageinput); c.add("br vtop", new JLabel("Comment")); c.add("tab hfill vfill", new JScrollPane(commentinput)); c.add("p center", okButton); return c; }
|