我正在寻找一种方法来以编程方式生成一个内部(文本字段)中包含一些对象的jinternalframe,但仍然可以访问这些字段。
我知道我需要创建一个jframe作为对象,然后可能在对象内部有一个方法可以轮询父级进行更新?
作为一个简单的例子,我创建了以下应用程序来展示我正在尝试做的事情。按钮1和2产生一个带有文本框的jinternalframe,然后我坚持按钮3和4将一些文本填入文本框。
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
spawnwindow("Window1");
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
spawnwindow("window2");
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
//todo put data into jTextField2 in window 1
}
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
//todo put data into jTextField2 in window 2
}
public void spawnwindow(String windowname){
jInternalFrame3 = new javax.swing.JInternalFrame();
jTextField2 = new javax.swing.JTextField();
jInternalFrame3.setName(windowname);
jInternalFrame3.setVisible(true);
jTextField2.setText(windowname);
jInternalFrame3.setTitle(windowname);
javax.swing.GroupLayout jInternalFrame3Layout = new javax.swing.GroupLayout(jInternalFrame3.getContentPane());
jInternalFrame3.getContentPane().setLayout(jInternalFrame3Layout);
jInternalFrame3Layout.setHorizontalGroup(
jInternalFrame3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jInternalFrame3Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jTextField2, javax.swing.GroupLayout.DEFAULT_SIZE, 216, Short.MAX_VALUE)
.addContainerGap())
);
jInternalFrame3Layout.setVerticalGroup(
jInternalFrame3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jInternalFrame3Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jTextField2, javax.swing.GroupLayout.DEFAULT_SIZE, 134, Short.MAX_VALUE)
.addContainerGap())
);
jInternalFrame3.setBounds(230, 220, 250, 190);
jDesktopPane1.add(jInternalFrame3, javax.swing.JLayeredPane.DEFAULT_LAYER);
}