Appearences of
forms
public class PasswordWindow extends JFrame {
....
Container pane = getContentPane();
pane.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.anchor = GridBagConstraints.WEST;
// Anchors elements to ‘west’ (left),
c.fill = GridBagConstraints.HORIZONTAL;
// If component has more space to use than needed,
// width will be increased horizontally.
c.insets = new Insets(2,2,2,2);
// 2 pixels of space is left around each element.
c.gridx = 0;
c.gridy = 0;
jlYritys = new JLabel("Company:");
pane.add(jlCompany,c);
c.gridy++;
jtfCompany = new JTextField(14);
pane.add(jtfCompany,c);
c.gridy++;
etc.
c.gridx = 0;
c.gridwidth = GridBagConstraints.REMAINDER;
// If some elements needs more cells horizontally,
// GRIDWIDTH value can be set to meet cell count needed
// or just use the line above, which takes rest of the row.
jlLAFLabel = new JLabel("Available Look And Feels:");
pane.add(jlLAFLabel, c);
etc.
Form functions
Option 1 :
create own interface
public class SendWindow extends JFrame implements ActionListener {
....
JButton jb = new JButton("Send");
jb.addActionListener( this );
jb.setActionCommand("Send");
pane.add( jb, c );
....
public void actionPerformed( ActionEvent e) {
if (e.getActionCommand().equals("Send")) {
...
}
}
Option 2 : create own class
.....
jtfField.addFocusListener( new LookupListener( jtfField, this, ... )
);
.....
public class LookupListener implements FocusListener {
public LookupListener( JTextField p_jtfField, JFrame p_jframe, ... ) {
...
}
// ---------------- f o c u s G a i n e d --------------
/**
* Save old value
*/
// bTemporary == true if cursor moves outside of the windows
public void focusGained( FocusEvent e) {
if (!bTemporary) {
....
}
}
// -------------------- f o c u s L o s t --------------------
/**
* Will be executed when focus is lost. Check lookup status.
* If lookup was not found method for that case will be executed
*/
public void focusLost( FocusEvent e) {
if (e.isTemporary())
bTemporary = true;
else {
bTemporary = false;
......
}
}
}
Option 3 : create a minor class
....
setTitle( "Title" );
addWindowListener( new WindowAdapter() {
public void windowActivated( WindowEvent e) {
System.out.println("windowActivated");
}
public void windowDeactivated( WindowEvent e) {
System.out.println("windowDeactivated");
}
public void windowOpened( WindowEvent e) {
System.out.println("windowOpened");
}
public void windowClosing( WindowEvent e) {
System.out.println("windowClosing");
}
public void windowClosed( WindowEvent e) {
System.out.println("windowClosing");
}
});
JPanel jpParameters = new JPanel( new GridBagLayout() );
GridBagConstraints c = new GridBagConstraints();
c.gridx = 0; c.gridy = 0;
c.anchor = GridBagConstraints.WEST;
.....