动态生成jinternalframes

时间:2013-04-11 23:40:45

标签: java swing jinternalframe

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


}

0 个答案:

没有答案