日期:2014-05-20  浏览次数:20730 次

关于内部窗体的问题
我创建了多个内部窗体,但是发现当我关闭名为a的内部窗体,然后在想打开名为a的内部窗体就打不开了,就是说一个内部窗体只能显示一次。当关闭后就在无法显示,只能重新启动程序。
这为什么?应该怎么做?
谢谢各位大侠!!!


------解决方案--------------------
窗体资源释放,没有重新创建。
应该是你的窗体判断有问题。
------解决方案--------------------
我想窗体关了,如果再开的话就重新创建一次
------解决方案--------------------

public class TestFrame extends javax.swing.JFrame {

/** Creates new form TestFrame */
public TestFrame() {
initComponents();
}

// <editor-fold defaultstate= "collapsed " desc= " 生成的代码 ">
private void initComponents() {
jFrame1 = new javax.swing.JFrame();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();

org.jdesktop.layout.GroupLayout jFrame1Layout = new org.jdesktop.layout.GroupLayout(jFrame1.getContentPane());
jFrame1.getContentPane().setLayout(jFrame1Layout);
jFrame1Layout.setHorizontalGroup(
jFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 400, Short.MAX_VALUE)
);
jFrame1Layout.setVerticalGroup(
jFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 300, Short.MAX_VALUE)
);

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jButton1.setText( "jButton1 ");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

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

org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(44, 44, 44)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
.add(jButton2)
.add(jButton1))
.addContainerGap(283, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(87, 87, 87)
.add(jButton1)
.add(25, 25, 25)
.add(jButton2)
.addContainerGap(142, Short.MAX_VALUE))
);
pack();
}// </editor-fold>

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO 将在此处添加您的处理代码:
this.jFrame1.setVisible(false);
}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO 将在此处添加您的处理代码:
this.jFrame1.setVisible(true);
}


public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new TestFrame().setVisible(true);
}