我正在寻找一种以编程方式在内部(文本字段)中生成包含一些对象的 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);
}