0

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


}
4

0 回答 0