Selasa, 17 Februari 2009

Cara menggunakan JInternalFrame

sama seperti di vb 6 atau vb.net ... kita bisa membuat mdiform pada java... cuma yang agak berbeda adalah JFrame pada java menjadi mdiFormnya...dan untuk form didalamnya kita dapat menggunakan JInternalFrame.... berikut ini adalah cara untuk membuat JInternalFrame....

//FrameInternal.java

import java.awt.*;
import javax.swing.*;

public class FrameInternal extends JInternalFrame{

public FrameInternal(int index) {
/*
* memanggil constructor dari class induk JInternalFrame
* parameter dari constructor kelas induk JInternalFrame adalah
* JInternalFrame(String title, boolean resizable, boolean closable,
* boolean maximizable, boolean iconifiable)
*/
super("FrameInternal#"+index, true, true, true, true);


setSize(300,150); // untuk mengatur besar dari JInternalFrame

/*
* untuk mengatur lokasi JFrame
* Toolkit.getDefaultToolkit().getScreenSize().width -> untuk mengambil lebar Layar
* Toolkit.getDefaultToolkit().getScreenSize().height -> untuk mengambil tinggi layar
*/
setLocation((Toolkit.getDefaultToolkit().getScreenSize().width/2)-(index*30),
(Toolkit.getDefaultToolkit().getScreenSize().height/2)-(index*22));

setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setVisible(true);
}


}

//Frame Utama.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class FrameUtama extends JFrame implements ActionListener{

/*
* untuk membuat menu
*/
private JMenuBar bar;
private JMenu mFile;
private JMenuItem mNewForm;
private JMenuItem mRemoveForm;

/*
* digunakan untuk menampung JInternalFrame
*/
private JDesktopPane desktop;


private int index = 0;
public FrameUtama() {
super("Form Utama");
setTampilan();
setListener();
}
void setTampilan()
{
bar = new JMenuBar();
mFile = new JMenu("File");
mNewForm = new JMenuItem("Form Baru");
mRemoveForm = new JMenuItem("Hapus Form");

/*
* meng-add JMenuItem ke JMenu
* dan meng-add JMenu ke JMenubar
*/

mFile.add(mNewForm);
mFile.add(mRemoveForm);
bar.add(mFile);

/*
* meng-add menu ke JMenuBar
*/
setJMenuBar(bar);


/*
* meng-add JDesktopPane ke JFrame
*/
desktop = new JDesktopPane();
add(desktop,BorderLayout.CENTER);

setSize(600, 500);

/*
* untuk men-set keadaan JFrame saat dibuka ke bentuk maximize
*/
setExtendedState(MAXIMIZED_BOTH);

setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
void setListener()
{
mNewForm.addActionListener(this);
mRemoveForm.addActionListener(this);

mFile.setMnemonic('F');

/*
* untuk memberikan shortcut pada masing-masing JMenuItem
*/
mNewForm.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,KeyEvent.CTRL_MASK));
mRemoveForm.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,KeyEvent.CTRL_MASK));


}
public static void main(String[] args) {
new FrameUtama();
}

public void actionPerformed(ActionEvent e) {
Object obj = e.getSource();
if(obj == mNewForm)
{
/*
* untuk add JInternalFrame ke JDesktopPane
*/
desktop.add(new FrameInternal(index));
index++;
}
else if(obj == mRemoveForm)
{
/*
* fungsi yang digunakan untuk meremove JInternalFrame dari JDesktopPane
*/
desktop.removeAll();
desktop.updateUI();
index = 0;
}
}
}


untuk File FrameUtama.java dan Frame Internal.java dapat diambil di...
http://www.kitaupload.com/download.php?file=535InternalFrame.rar