如何更新/刷新值而不退出netbeans gui中的系统?

时间:2014-12-13 05:59:56

标签: java swing user-interface netbeans

登录后菜单中显示用户详细信息.....但是当我在详细信息中修改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();

1 个答案:

答案 0 :(得分:0)

如果您表示自己没有#39;要在更改控件后更新控件,则需要添加电话revalidate()