melanjutkan masalah dari JInternalFrame di Java – bag 2. masalah yang terjadi pada pembahasan sebelumnya adalah pada saat JInternalFrame diminimize dan menu item diklik untuk menampilkan kembali JInternalFrame yang sudah diminimize, JInternalFrame tersebut masih tetap berada diposisi minimize dan tidak tampil. berikut ulasannya :

masalah seperti ini sama halnya dengan bagaimana cara maximize JInternalFrame? atau bagaimana cara minimize JInternalFrame? atau bagaimana cara deactive iconify JInternalFrame? berikut solusinya :

  • saya kembali ambil contoh untuk project sebelumnya pada pembuatan JInternalFrame di Java.
  • yang diubah adalah coding pada menu item “Open Internal Satu“. sebelumnya coding event menu item tersebut adalah :

private void openInternalSatuActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (!satu.getVisible() && !satu.isShowing()) {
satu = new InternalSatu();
jDesktopPane1.add(satu);
satu.setVisible(true);
}
}

  • ubah coding tersebut menjadi :

private void openInternalSatuActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (!satu.getVisible() && !satu.isShowing()) {
satu = new InternalSatu();
jDesktopPane1.add(satu);
satu.setVisible(true);
} else {
try {
satu.setSelected(true);
satu.getDesktopPane().getDesktopManager().deiconifyFrame(satu);
satu.getDesktopPane().getDesktopManager().maximizeFrame(satu);
satu.getDesktopPane().getDesktopManager().minimizeFrame(satu);
satu.moveToFront();
} catch (PropertyVetoException ex) {
Logger.getLogger(FrameUtama.class.getName()).log(Level.SEVERE, null, ex);
}
}
}

setelah itu jalankan kembali programnya…maka masalah terselesaikan..selamat mencoba semoga membantu😀

Download File Projectnya disini.

kode utama untuk minimize, maximize sebuah JInternalFrame yaitu :


JInternalFrame internalFrame = new JInternalFrame();

internalFrame.getDesktopPane().getDesktopManager().deiconifyFrame(internalFrame);
internalFrame.getDesktopPane().getDesktopManager().maximizeFrame(internalFrame);
internalFrame.getDesktopPane().getDesktopManager().minimizeFrame(internalFrame);
internalFrame.moveToFront();