我试图连接两个简单的Java程序,一个密码登录程序,然后打开第二个程序(一个非常简单的PrintWriter程序)。
我是一个超级菜鸟,所以尝试仅将辅助程序添加到密码程序中。显然那是行不通的。我看到很多有关创建密码程序的条目,以及一些有关使用.exec运行外部应用程序的条目。我想我要做的是嵌入一个在用户登录后运行的程序。
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class PasswordApplet extends Applet implements ActionListener
{
//Declaring variables
String id, password;
String[] validID = { "id1", "id2"};
String[] validPassword = { "password1", "password2"};
boolean success;
//Create components for applet
Label headerLabel = new Label("Please type your ID and Password");
Label idLabel = new Label("ID: ");
TextField idField = new TextField(8);
Label passwordLabel = new Label("Password: ");
TextField passwordField = new TextField(8);
Button loginButton = new Button("Login");
public void init()
{
//set color, layout, and add components
setBackground(Color.orange);
setLayout(new FlowLayout(FlowLayout.LEFT, 50, 30));
add(headerLabel);
add(idLabel);
add(idField);
idField.requestFocus();
add(passwordLabel);
add(passwordField);
passwordField.setEchoChar('*');
add(loginButton);
loginButton.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
success = false;
//Sequential search
int i = 0;
while ( i<validID.length)
{
if(idField.getText().compareTo(validID[i]) == 0)
{
if (passwordField.getText().compareTo(validPassword[i]) == 0)
{
success = true;
}
}
i = i + 1;
}
if (success == true)
{
headerLabel.setText("Login successful");
}
else
{
headerLabel.setText("Unsuccessful. Try Again");
idField.setText(" ");
passwordField.setText(" ");
idField.requestFocus();
}
repaint();
}
}
这是第二个PrintWriter程序:
import java.io.*;
public class Philosophers
{
public static void main(String[] args) throws IOException
{
//Declare a PrintWriter variable named myFile and open a file
named philosophers.rtf.
PrintWriter myFile = new PrintWriter("philosophers.rtf");
//Write the names of 3 philosophers to the file
myFile.println("John Locke");
myFile.println("David Hume");
myFile.println("Edmund Burke");
//Close the file
myFile.close();
}
}
答案 0 :(得分:1)
您只需在成功案例中在try / catch块中添加Philosophers.main调用即可,因为Philosophers.main可能会引发IOException,例如:
if (success == true) {
headerLabel.setText("Login successful");
try {
Philosophers.main(null);
} catch (IOException ex){ex.printStackTrace();}