你看看我理解的对不, /** 这个就是我们要恢复最小化的那个窗口*/ import javax.swing.*; import java.awt.*; import javax.swing.event.*; public class JJ1 extends JFrame { public JLabel jl; public JTextField jt ; public JJ1() { setSize(300,300); jl = new JLabel("Resize Me"); jt = new JTextField(""); jt.setSize(100,50); setLayout(new GridLayout(1,2)); add(jl); add(jt); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true);
}
} /** 这个就是主窗口程序*/ import javax.swing.*; import java.awt.*; import javax.swing.event.*; import java.awt.event.*; public class TestResize extends JFrame implements ActionListener { public JJ1 jj ; public JButton jb; public Boolean bb ; public TestResize() { // jj = new JJ1(); setSize(300,300); bb = false ; jb = new JButton("Open the Sub JFrame"); jb.addActionListener(this); add(jb , BorderLayout.CENTER); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true);
// this.setSize(200, 200);
// this.setVisible(true);
这样就能达到你说的效果了。
/**
这个就是我们要恢复最小化的那个窗口*/
import javax.swing.*;
import java.awt.*;
import javax.swing.event.*;
public class JJ1 extends JFrame
{
public JLabel jl;
public JTextField jt ;
public JJ1()
{
setSize(300,300);
jl = new JLabel("Resize Me");
jt = new JTextField("");
jt.setSize(100,50);
setLayout(new GridLayout(1,2));
add(jl);
add(jt);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
}
/**
这个就是主窗口程序*/
import javax.swing.*;
import java.awt.*;
import javax.swing.event.*;
import java.awt.event.*;
public class TestResize extends JFrame implements ActionListener
{
public JJ1 jj ;
public JButton jb;
public Boolean bb ;
public TestResize()
{
// jj = new JJ1();
setSize(300,300);
bb = false ;
jb = new JButton("Open the Sub JFrame");
jb.addActionListener(this);
add(jb , BorderLayout.CENTER);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(bb)
{
bb = false;
jj.setExtendedState(NORMAL);
}
else
{
bb = true ;
jb.setText("Reset the Minimal JFrame") ;
jj=new JJ1();
jj.setLocation(300,300);
}
}
public static void main(String args[])
{
new TestResize();
}}我的思路是 ,如果扩展开,你有多个sub-JFrame, 那么你就可以建立多个不同的Boolean ,每个不同的sub-jframe最小化了 , 就改变相应的boolean
,或者你也可以做对应每一个sub-JFrame的按钮,点击相应的按钮 ,来把窗口恢复正常
当主界面的按钮按下时
在监听器上写下:jFrame1.setState(JFrame.NORMAL);
就可以,刚刚试验过,好用