我正在开发一个简单的 Java Swing 应用程序,我对main()方法args输入参数有一个愚蠢的怀疑:
我有以下代码:
package com.test.login;
import java.awt.Container;
import java.awt.Dimension;
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);
// First execute the LoginFrame class to open the login windows:
public static void main(String[] args) {
System.out.println("Inside: MainWindows() ---> main()");
if(!(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);
show(mainFrame);
}
}
main()方法采用经典的args[]数组参数(即字符串数组)
我希望如果该数组中的第一个元素不是已登录的字符串,它将启动LoginFrame.class,否则不执行任何操作,并且将自动调用呈现 JFrame 窗口的startUp()方法。
问题是,当我尝试执行此类时,我在 Eclipse 控制台中收到以下错误消息:
Inside: MainWindows() ---> main()
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at com.test.login.MainWindows.main(MainWindows.java:19)
为什么?问题出在哪里?我该如何解决?
肿瘤坏死因子
安德烈亚