登录后菜单中显示用户详细信息.....但是当我在详细信息中修改jframe时,单击并返回菜单不刷新到最新值,并且在登录后仍然保留值。如何在不退出程序的情况下刷新价值?我的程序工作正常... juz修改后的细节没有显示...需要退出系统并再次运行然后细节将更新...但它不会自动刷新而不退出程序。以下是登录jframe中的代码。
{
try(Scanner RD = new Scanner(new FileReader("Users.txt"));)
{
while(RD.hasNext())
{
String line = RD.nextLine();
StringTokenizer token = new StringTokenizer(line,":");
String pw = token.nextToken();
String name = token.nextToken();
double balance = Double.parseDouble(token.nextToken());
String email = token.nextToken();
String region = token.nextToken();
User user = new User();
user.setpw(pw);
user.setName(name);
user.setBalance(balance);
user.setEmail(email);
user.setRegion(region);
if (pw.equals(textPw.getText()) )
{
Label1.setText("Login Success");
Menu cust = new Menu(user);
cust.setVisible(true);
this.dispose();
}
else
{
jLabel1.setText("Invalid Password. Please try again");
}
}
}
catch(FileNotFoundException e)
{
JOptionPane.showMessageDialog(null, "Invalid Password.");
}
}
以下是菜单jframe
public Menu(User user){
this.getContentPane().setBackground(Color.WHITE);
initComponents();
Menu.user = user;
nm.setText(Menu.user.getName());
sb.setText(Double.toString(Menu.user.getBalance()));
em.setText(Menu.user.getEmail());
}
这是我从txtfile修改我的数据的代码...之后点击更新并返回菜单时,菜单中的详细信息仍未保持与登录时相同。
public void UpdateBalance()
{
try(Scanner reader = new Scanner(new FileReader("Users.txt"));)
{
while(reader.hasNext())
{
String[] temp = reader.nextLine().split(":");
{
temp[2] = amount.getText();
}
try(PrintWriter write = new PrintWriter(new FileWriter("Users.temp", true));)
{
write.println(temp[0] + ":" + temp[1] + ":" + temp[2] + ":" + temp[3] + ":" + temp[4] + ":" + temp[5]);
} catch(IOException ex) {
ex.printStackTrace();
}
}
reader.close();
File oldFile = new File("Users.txt");
if(oldFile.delete())
{
}
File newFile = new File("Users.temp");
newFile.renameTo(oldFile);
}
catch(IOException ex)
{
ex.printStackTrace();
}
}
下面是点击返回菜单的按钮
Menu cust = new Menu(Menu.user);
cust.setVisible(true);
this.dispose();
答案 0 :(得分:0)
如果您表示自己没有#39;要在更改控件后更新控件,则需要添加电话revalidate()
。