日期:2014-05-20  浏览次数:20698 次

请问一下,swing应用中如何保存一个全局变量
 web应用中有个session对象可以保存全局变量, 请问一下j2se桌面应用中如何设置一个全局变量,供其他的JFrame直接获取。。。
 业务描述:用户登入,记录用户登入信息,输入用户名后,我加载了一个系统托盘,没有显示FrmMain窗口,可以通过点击右下角图标进行显示。

我现在的实现方式:
1.登入窗口JFrame(FrmLogin)
            FrmMain frmMain = new FrmMain();
            frmMain.setUserInfo(identifiedResults);

2.登入后界面JFrame(FrmMain)
public class FrmMain extends javax.swing.JFrame {

    private String userInfo;

    public void setUserInfo(String userInfo) {
        this.userInfo = userInfo;
    }

    public FrmMain() {
        initComponents();
        this.setTitle("用户中心");
        this.setResizable(false);
        System.out.println("user info :" + userInfo); // 为什么这里没有获取数据
        if (userInfo != null) {
            String[] userInfoArr = userInfo.split("~");
            txUserName.setText(userInfoArr[2]);
            txDepName.setText(userInfoArr[4]);
        }

        addSysTray();  // 加载系统托盘
    }

加载系统托盘程序部分代码:
               .....
                trayIcon.addMouseListener(new MouseAdapter() {

                    @Override
                    public void mouseClicked(MouseEvent e) {
                        if (e.getClickCount() == 2) {
                            setVisible(true);
                            System.out.println("user info :" + userInfo); // 这个地方有数据,不知道为什么