Java FileWriter仅在没有GUI的情况下工作
我想创建一个登录窗口,将用户名和密码保存在程序运行时创建的文件中:主要问题是,当我从控制台运行java时,程序工作(这里是部分代码): 但当我运行这段代码时,它不会Java FileWriter仅在没有GUI的情况下工作,java,user-interface,jframe,Java,User Interface,Jframe,我想创建一个登录窗口,将用户名和密码保存在程序运行时创建的文件中:主要问题是,当我从控制台运行java时,程序工作(这里是部分代码): 但当我运行这段代码时,它不会 import java.util.*; import java.io.*; import java.awt.*; import javax.swing.*; public class LogIn extends JFrame { private JLabel label; private JLabel label
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);
}
}
为什么会发生这种情况?而不是:
if(button.isSelected())
将ActionListener
添加到JButton
isSelected()
方法返回按钮的状态<代码>真如果选择了切换按钮,如果未选择则为假这不是您需要的,因为您只想将按钮单击与操作关联,而不使用切换按钮 请尝试以下代码:
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();
}
}
}
});
“但是当我运行此代码时,它不工作。”你怎么知道?程序本身工作,但它不创建.txt文件
新文件(“data.txt”)
引用运行程序时当前目录中的任何文件。尝试使用绝对路径,如新文件(System.getProperty(“user.home”),“data.text”)
。我知道这一点,我也尝试了你的代码,但它仍然不起作用,我得到的只是GUI,其他什么都没有
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();
}
}
}
});