我正在开发这个MainWindows类,它扩展了一个自动提供JFrame的SingleFrameApplication抽象类
当main()方法执行时,它检查用户是否登录,如果用户没有登录,首先显示另一个由LoginFrame类实现的JFrame窗口。在这里,用户插入其用户名和密码,然后可以登录返回到我的MainWindows(如果登录正常)。
此时这个MainWindows类只包含一个LogOut按钮,这个按钮的点击事件由AbstractAction内部类中定义的actionPerformed方法处理。我希望,当单击此按钮时,必须将此MainWindows设置为不可见,并且LoginFrame窗口出现在其位置。
问题是,从这里开始,似乎不可能将此MainWindows设置为不可见。Eclipse 在这一行给我一个错误:
mainFrame.setVisible(false);
package com.test.login;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JFrame;
import org.jdesktop.application.SingleFrameApplication;
public class MainWindows extends SingleFrameApplication {
private static final int FIXED_WIDTH = 880;
private static final Dimension INITAL_SIZE = new Dimension(FIXED_WIDTH, 440);
private final Action actionLogOut = new AbstractAction() {
{
putValue(Action.NAME, ("LogOut"));
}
@Override
public void actionPerformed(ActionEvent e)
{
System.out.println("logOutButton clicked !!!");
String[] args = null;
launch(LoginFrame.class, args);
mainFrame.setVisible(false);
}
};
// First execute the LoginFrame class to open the login windows:
public static void main(String[] args) {
System.out.println("Inside: MainWindows() ---> main()");
if(!(args.length > 0 && args[0].equals("loggedIn"))){
launch(LoginFrame.class, args);
}
}
@Override
protected void startup() {
// TODO Auto-generated method stub
System.out.println("Inside MainWindows ---> startup()");
JFrame mainFrame = this.getMainFrame(); // main JFrame that represents the Windows
mainFrame.setTitle("My Appliction MainFrame");
mainFrame.setPreferredSize(INITAL_SIZE);
mainFrame.setResizable(false);
mainFrame.add(new JButton(actionLogOut));
//mainFrame.add(new JButton("LogOut"));
show(mainFrame);
}
}
有人可以帮助我吗?
肿瘤坏死因子
安德烈亚