Java 程序编译并运行,但没有输出
目前我已经创建了两个Java 程序编译并运行,但没有输出,java,swing,jframe,file-handling,Java,Swing,Jframe,File Handling,目前我已经创建了两个JFrames,一个JFrame用于登录验证,另一个是主菜单。问题是当我编译并运行程序时,没有输出,屏幕只是空白。NetBeans编译器显示其正在运行,但没有显示任何内容 以下是我所做的:这是登录框架代码 public class Login_screen extends javax.swing.JFrame { /** * Creates new form Login_screen */ public Login_screen() {
JFrame
s,一个JFrame
用于登录验证,另一个是主菜单。问题是当我编译并运行程序时,没有输出,屏幕只是空白。NetBeans编译器显示其正在运行,但没有显示任何内容
以下是我所做的:这是登录框架代码
public class Login_screen extends javax.swing.JFrame {
/**
* Creates new form Login_screen
*/
public Login_screen() {
initComponents();
this.getContentPane().setBackground(new Color(0,176,80)); //changed the background colour of the frame
}
JFrame frame=new JFrame();
Main_Menu_screen openscreen=new Main_Menu_screen();
createLogin_class createAccount=new createLogin_class();
private void btnloginActionPerformed(java.awt.event.ActionEvent evt) {
try{
libraryLogin_class loginObject=new libraryLogin_class();
createAccount.login();
String username=txtusername.getText();
String password=new String(txtpassword.getPassword());
FileInputStream file=new FileInputStream("login.txt");
ObjectInputStream readFile=new ObjectInputStream(file);
loginObject=(libraryLogin_class)readFile.readObject();
readFile.close();
if(loginObject.getUsername().equals(username) &&
loginObject.getPassword().equals(password)){
JOptionPane.showMessageDialog(frame,"Login Successful");
this.setVisible(false);
openscreen.setVisible(true);
}
else
{
JOptionPane.showMessageDialog(frame,"Username/Password Incorrect!");
}
}catch(Exception e){}
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Login_screen().setVisible(true);
}
});
}
}
这是两个与登录框架关联的独立类
public class createLogin_class {
/**
* Below method creates a login with the given
* username and password and passes them to createLogin method
*/
public void login(){
String username="shehan";
String password="123";
createLogin_class user=new createLogin_class();
user.createLogin(username, password);
}
/**
* This method calls the constructor of libraryLogin class
* and pass the parameters to create an object,
* after the object is created it is written in to a file.
* @param username
* @param password
*/
public void createLogin(String username,String password){
libraryLogin_class logins=new libraryLogin_class(username,password);
try{
FileOutputStream write=new FileOutputStream("login.txt");
ObjectOutputStream writeTofile=new ObjectOutputStream(write);
writeTofile.writeObject(logins);
writeTofile.flush();
writeTofile.close();
}catch(Exception e){}
}
}
另一类:
public class libraryLogin_class implements Serializable {
private String username;
private String password;
public libraryLogin_class(){}
public libraryLogin_class(String username, String password) {
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
}
我自己设法找到了问题。问题是由递归引起的。一个构造函数在调用它自己,所以我改变了它,程序开始工作 您已经使用Runnable接口创建了一个新线程。但是你是从哪里开始的呢。您需要启动线程才能使其工作。为什么
new Login_screen().setVisible(true)代码>在单独的线程中?请考虑使用java命名约定。我已经添加了所有我已经完成的编码,现在是通过Oracac文档。谢谢你的提示。