/ / JInternalFrame माता-पिता से एक बच्चे को कैसे निपटाना है? - जावा, माता-पिता-बच्चे, जिनेनफ्रेम

JInternalFrame माता-पिता से बच्चे को कैसे निपटाना है? - जावा, माता-पिता-बच्चे, jinternalframe

मेरे पास एक अभिभावक वर्ग और एक बच्चा वर्ग (दोनों) हैJInternalFrame), यदि मेरे माता-पिता खुले हैं तो मेरा बच्चा आवश्यक है। मैं खोजता हूं और खोजता हूं और कुछ भी नहीं ... बस अस्पष्ट उत्तर देता हूं। मैं माता-पिता को बंद करने वाले बच्चे को कैसे निपटा सकता हूं? (हाँ, मुझे पता है कि मैं बच्चों के बजाय बच्चा कह रहा हूँ, लेकिन बच्चा सिर्फ एक बार खुल सकता है, इसलिए हाँ बच्चा है) मैंने उदाहरण के साथ कोशिश की, लेकिन मैं उसके साथ इतना अच्छा नहीं हूँ। एक बड़ा धन्यवाद। =)

Link: https://pastebin.com/5MLUZDBZ

उत्तर:

उत्तर № 1 के लिए 1

अगले प्रश्नों के लिए, यह अनुशंसा की जाती है कि आप एक प्रदान करें न्यूनतम, पूर्ण, और सत्यापन योग्य उदाहरण.

हालाँकि अपने कोड को देखते हुए, आपको बस इसे बनाना होगा ताकि प्रत्येक Parentआंतरिक फ़्रेम स्वयं का ट्रैक रखता है Child आंतरिक फ़्रेम (देखें) List बुलाया children)।

फिर जब आप माता-पिता को निपटाना चाहते हैं, तो पहले प्रत्येक बच्चे को सूची से हटा दें।

यहाँ आपके संशोधित संस्करण है Parent वर्ग :

import java.util.ArrayList;
import java.util.List;

import javax.swing.JDesktopPane;

public class Parent extends javax.swing.JInternalFrame {

private final JDesktopPane pane;
private final List<Child> children = new ArrayList<>();

public Parent(final JDesktopPane pane) {
this.pane = pane;
initComponents();
}

@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();

jButton1.setText("Open child");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(final java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

jButton2.setText("Close all");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(final java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jButton1)
.addGap(37, 37, 37)
.addComponent(jButton2)
.addContainerGap(193, Short.MAX_VALUE)));
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(30, 30, 30)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jButton2))
.addContainerGap(225, Short.MAX_VALUE)));

pack();

}// </editor-fold>

private void jButton1ActionPerformed(final java.awt.event.ActionEvent evt) {
Child c = new Child();
children.add(c);
pane.add(c);
c.setVisible(true);
c.toFront();
}

private void jButton2ActionPerformed(final java.awt.event.ActionEvent evt) {

//CLOSE THIS WINDOW AND CHILD
for (Child child : children) {

child.dispose();
}

this.dispose();

}

// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
// End of variables declaration
}