| |
MDI forms are a great interface for designing encapsulated subsystems. This is an example of MDI form source code that uses menu item events to load other forms. We use HEADLINE Scripting with lowercase prefixes for most objects. We also use acronyms for field names (AccountNumber=ACTNBR). Please pardon the formatting from the HTML editor. Indentations were lost, and it selected some funky fonts and colors.
Copyrighted by CompuCranks.com (2006)
//**************************************************************************
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
//**************************************************************************
class guiMDI_DEMO extends JFrame {
//**************************************************************************
private JDesktopPane pnlMDI;
private JMenuBar mnuBAR;
private JMenu mnuFILE;
private JMenuItem mnuITEM;
private JInternalFrame frmHELLO;
private JPanel pnlHELLO;
private JTextField tbxHELLO;
private JLabel lblHELLO;
private JButton btnOK;
private JButton btnCANCEL;
private Insets insets;
//--------------------------------------------------------------------------
public guiMDI_DEMO() {
//--------------------------------------------------------------------------
setTitle("JAVA MDI Version of Hello World");
setBounds(100,150,700,500);
setResizable(true);
setExtendedState(MAXIMIZED_BOTH);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pnlMDI = new JDesktopPane ();
pnlMDI.setLayout(null);
insets = pnlMDI.getInsets();
this.add(pnlMDI);
mnuBAR = new JMenuBar();
mnuFILE = new JMenu("File");
mnuBAR.add(mnuFILE);
mnuITEM = new JMenuItem("Hello World");
mnuITEM.addActionListener(new MenuHandler());
mnuFILE.add(mnuITEM);
mnuFILE.addSeparator();
mnuITEM = new JMenuItem("Exit");
mnuITEM.addActionListener(new MenuHandler());
mnuFILE.add(mnuITEM);
this.setJMenuBar(mnuBAR);
frmHELLO = new JInternalFrame();
pnlHELLO = new JPanel ();
pnlHELLO.setLayout(null);
frmHELLO.add(pnlHELLO);
pnlMDI.add(frmHELLO);
frmHELLO.setBounds(50,50,267,150);
tbxHELLO = new JTextField();
tbxHELLO.setText("");
tbxHELLO.setBounds(insets.left + 25,insets.top + 10,200,25);
tbxHELLO.setBorder(BorderFactory.createLoweredBevelBorder());
tbxHELLO.setHorizontalAlignment(SwingConstants.CENTER);
pnlHELLO.add(tbxHELLO);
lblHELLO = new JLabel();
lblHELLO.setText("");
lblHELLO.setBounds(insets.left + 10,insets.top + 40,225,25);
lblHELLO.setHorizontalAlignment(SwingConstants.CENTER);
pnlHELLO.add(lblHELLO);
btnOK = new JButton("OK");
btnOK.setBounds(insets.left + 40,insets.top + 75,75,25);
btnOK.setBorder(BorderFactory.createRaisedBevelBorder());
btnOK.addActionListener(new ButtonHandler());
pnlHELLO.add(btnOK);
btnCANCEL = new JButton("Cancel");
btnCANCEL.setBounds(insets.left + 150,insets.top + 75,75,25);
btnCANCEL.setBorder(BorderFactory.createRaisedBevelBorder());
btnCANCEL.addActionListener(new ButtonHandler());
pnlHELLO.add(btnCANCEL);
}
//-----------------------------------------------------------------------------
private class MenuHandler implements ActionListener {
//-----------------------------------------------------------------------------
public void actionPerformed(ActionEvent e){
JMenuItem M = (JMenuItem)e.getSource();
if (M.getText().equals("Hello World")) {
frmHELLO.setVisible(true);
} else if (M.getText().equals("Exit")) {
dispose();
}
}
}
//-----------------------------------------------------------------------------
private class ButtonHandler implements ActionListener {
//-----------------------------------------------------------------------------
public void actionPerformed(ActionEvent e){
JButton b = (JButton)e.getSource();
if (e.getSource()==btnOK)
lblHELLO.setText("Hello " + tbxHELLO.getText());
else if (e.getSource()==btnCANCEL)
dispose();
}
}
//--------------------------------------------------------------------------
public static void main(String[] args) {
//--------------------------------------------------------------------------
guiMDI_DEMO gui = new guiMDI_DEMO();
gui.setVisible(true);
}
}
|