Так что это мой код:Закрыть Внутреннюю рамку после определенной задачи
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», который обрабатывает весь вход в кадре. Если имя пользователя/пароль работает, он создает логическую переменную «valid», которая истинна. Я назвал его «panel.getValid()». Как вы видите, цель состоит в том, чтобы выйти из фрейма входа, когда «valid» имеет значение true. Это возможно? Что рекомендуют люди? Прямо сейчас, когда «setClosed» выходит из всего кадра, а не только внутреннего фрейма «Вход». Я не знаю почему
1) Не выдвигайте рамки или другие контейнеры верхнего уровня. Вместо этого создайте & используйте экземпляр одного. 2) Используйте последовательный и логический отступ для кодовых блоков. Отступ кода предназначен для того, чтобы помочь людям понять поток программы. 3) За более эффективную помощь отправьте сообщение по адресу [SSCCE] (http://sscce.org/). –