所以这是我的代码:
public class DesktopFrame extends JFrame{
private JDesktopPane theDesktop;
private JInternalFrame login;
private JMenuBar bar;
private JMenu fileMenu;
private JMenuItem newLoginFrame;
private LoginPanel panel;
// set up GUI
public DesktopFrame(){
super( "Application" );
bar = new JMenuBar(); // create menu bar
bar.setBackground(new Color(255,215,0));
fileMenu = new JMenu( "File" ); // create Add menu
fileMenu.setBackground(new Color(255,215,0));
newLoginFrame = new JMenuItem( "Login" );
newLoginFrame.setBackground(new Color(255,215,0));
fileMenu.add( newLoginFrame ); // add new frame item to Add menu
bar.add(fileMenu); // add Add menu to menu bar
setJMenuBar(bar); // set menu bar for this application
theDesktop = new JDesktopPane(); // create desktop pane
theDesktop.setBackground(Color.BLUE);
add(theDesktop); // add desktop pane to frame
// set up listener for newLoginFrame menu item
newLoginFrame.addActionListener(new ActionListener(){ // anonymous inner class
// display new internal window
public void actionPerformed( ActionEvent event ){
login = new JInternalFrame("Member Login", false, false, false, false);
panel = new LoginPanel();
login.add( panel, BorderLayout.CENTER ); // add panel
login.setSize(375,300);
login.setLocation(20,20);
theDesktop.add( login ); // attach internal frame
login.setVisible( true ); // show internal frame
} // end method actionPerformed
} // end anonymous inner class); // end call to addActionListener
} // end DesktopFrame constructor
public void getValid(){
if(panel.getValid() == true){
try{
login.setClosed(true);
}
catch(PropertyVetoException p){
}
}
}
} // end class DesktopFrame
在本文档中,还有另一个类“LoginPanel”处理所有登录框架。如果用户名/密码有效,它会创建一个布尔变量“有效”,它是真的。我用“panel.getValid()”调用它。如您所见,目的是在“有效”为真时退出登录框架。这可能吗?人们推荐什么?现在,使用“setClosed”它正在退出整个框架,而不仅仅是内部的“登录”框架。我不知道为什么