我想创建一个登录窗口,将用户名和密码保存在程序运行时创建的文件中:主要问题是当我从控制台运行java程序时,程序可以运行(这里是代码的一部分): / p>
Scanner in = new Scanner(System.in);
try {
String s = " ";
System.out.print("Password: ");
s = in.nextLine();
File newTextFile = new File("data.txt");
FileWriter data = new FileWriter(newTextFile);
data.write(s);
data.close();
} catch (IOException iox) {
iox.printStackTrace();
}
}
但是当我运行这段代码时,它并没有
import java.util.*;
import java.io.*;
import java.awt.*;
import javax.swing.*;
public class LogIn extends JFrame {
private JLabel label;
private JLabel label1;
private JButton button;
private JTextField text;
private JTextField text1;
public LogIn() {
setLayout(new FlowLayout());
label = new JLabel("Username");
add(label);
text = new JTextField(10);
add(text);
label1 = new JLabel("Password");
add(label1);
text1 = new JTextField(10);
add(text1);
button = new JButton("Log In");
add(button);
if(button.isSelected())
try {
File newTextFile = new File("data.txt");
FileWriter data = new FileWriter(newTextFile);
data.write(text.getText());
data.write(text1.getText());
data.close();
} catch (IOException iox) {
iox.printStackTrace();
}
}
public static void main(String[] args) {
LogIn gui = new LogIn();
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gui.setSize(200, 125);
gui.setTitle("Log In");
gui.setVisible(true);
}
}
为什么会这样?
答案 0 :(得分:2)
而不是:
if(button.isSelected())
向ActionListener
添加JButton
。
isSelected()
方法返回按钮的状态。 True
如果选中了切换按钮,false
如果不是。
这不是您需要的,因为您只想将按钮单击与动作相关联,而不使用切换按钮。
请尝试使用此代码:
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
File newTextFile = new File("data.txt");
FileWriter data = new FileWriter(newTextFile);
data.write(text.getText());
data.write(text1.getText());
data.close();
}
catch (IOException iox) {
iox.printStackTrace();
}
}
}
});