 |
Home | Changes | Index | Search | Go
Introduction
TransparentLayout is a constraints based, null layout alike layout manager.
Usage
Just set the original component bounds (x, y, width, height) and enjoy the GUI. No brainstorm is required!
Here is the full source code of the form specified in the John O'Conner's Layout Manager Showdown:
import javax.swing.*;
import java.awt.*;
import net.java.dev.transparentlayout.TransparentLayout;
/**
* TransparentLayout version of the Address Book form from
* John O'Connor's "Layout Manager Showdown" blog:
* http://weblogs.java.net/blog/joconner/archive/2006/10/more_informatio.html
*/
public class AddressBookDemo_TransparentLayout {
public static void buildFrame(JFrame f) {
JList namesList = new JList(new String[] {
"Bugs Bunny", "Sylvester Cat", "Wile Coyote", "Tasmanian Devil",
"Daffy Duck", "Elmer Fudd", "Pepe Le Pew", "Marvin Martian"
});
JScrollPane scrollpane = new JScrollPane(namesList);
JLabel lastNameLabel = new JLabel();
JTextField lastNameField = new JTextField();
JLabel firstNameLabel = new JLabel();
JTextField firstNameField = new JTextField();
JLabel phoneLabel = new JLabel();
JTextField phoneField = new JTextField();
JLabel emailLabel = new JLabel();
JTextField emailField = new JTextField();
JLabel address1Label = new JLabel();
JTextField address1Field = new JTextField();
JLabel address2Label = new JLabel();
JTextField adress2Field = new JTextField();
JLabel cityLabel = new JLabel();
JTextField cityField = new JTextField();
JLabel stateLabel = new JLabel();
JTextField stateField = new JTextField();
JLabel countryLabel = new JLabel();
JTextField countryField = new JTextField();
JLabel postalLabel = new JLabel();
JTextField postalField = new JTextField();
JButton newButton = new JButton();
JButton cancelButton = new JButton();
JButton deleteButton = new JButton();
JButton editButton = new JButton();
JButton saveButton = new JButton();
lastNameLabel.setText("Last Name:");
lastNameField.setText("Martian");
firstNameLabel.setText("First Name:");
firstNameField.setText("Marvin");
phoneLabel.setText("Phone:");
phoneField.setText("805-876-5432");
emailLabel.setText("Email:");
emailField.setText("marvin@wb.com");
address1Label.setText("Address 1:");
address1Field.setText("1001001010101 Martian Way");
adress2Field.setText("Suite 10111011");
address2Label.setText("Address 2:");
cityLabel.setText("City:");
cityField.setText("Ventura");
stateLabel.setText("State:");
stateField.setText("CA");
countryLabel.setText("Country:");
postalLabel.setText("Postal Code:");
postalField.setText("93001");
newButton.setText("New");
cancelButton.setText("Cancel");
deleteButton.setText("Delete");
editButton.setText("Edit");
saveButton.setText("Save");
Container p = f.getContentPane();
p.setLayout(new TransparentLayout());
p.add( scrollpane, new Rectangle( 12, 12,130,214));
p.add( lastNameLabel, new Rectangle(160, 14, 64, 16));
p.add( lastNameField, new Rectangle(236, 12,121, 20));
p.add(firstNameLabel, new Rectangle(369, 14, 64, 16));
p.add(firstNameField, new Rectangle(445, 12,104, 20));
p.add( phoneLabel, new Rectangle(185, 40, 39, 16));
p.add( phoneField, new Rectangle(236, 38,121, 20));
p.add( emailLabel, new Rectangle(369, 40, 34, 16));
p.add( emailField, new Rectangle(415, 38,134, 20));
p.add( address1Label, new Rectangle(163, 66, 61, 16));
p.add( address1Field, new Rectangle(236, 64,313, 20));
p.add( address2Label, new Rectangle(163, 92, 61, 16));
p.add( adress2Field, new Rectangle(236, 90,313, 20));
p.add( cityLabel, new Rectangle(200,118, 24, 16));
p.add( cityField, new Rectangle(236,116,121, 20));
p.add( stateLabel, new Rectangle(191,144, 33, 16));
p.add( stateField, new Rectangle(236,142,121, 20));
p.add( countryLabel, new Rectangle(177,170, 47, 16));
p.add( countryField, new Rectangle(236,168,121, 20));
p.add( postalLabel, new Rectangle(369,144, 71, 16));
p.add( postalField, new Rectangle(452,142, 97, 20));
p.add( newButton, new Rectangle(160,200, 73, 26));
p.add( cancelButton, new Rectangle(476,200, 73, 26));
p.add( deleteButton, new Rectangle(239,200, 73, 26));
p.add( editButton, new Rectangle(318,200, 73, 26));
p.add( saveButton, new Rectangle(397,200, 73, 26));
f.setBounds(new Rectangle(0,0,569,272));
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String args[]) {
JFrame f = new JFrame();
buildFrame(f);
f.setVisible(true);
}
}
More information
For more details, please refer to the project site at https://transparentlayout.dev.java.net.
|