我写了这样的代码——public class login
{
    private static login instance = null; 
    
    public static final void getInstance() 
    {System.out.println(instance);
        if (instance==null) 
            instance=new login(); 
        else
            JOptionPane.showMessageDialog(null, "已经有一个实例在运行了~\n请不要打开多个实例...",
                                "信息提示", JOptionPane.ERROR_MESSAGE);
        System.out.println(instance);
    } 然后Main函数里面调用getInstance() 
其他窗体方法略过
可是起不到作用,怎么改??????

解决方案 »

  1.   

    除了少一}外没什么问题import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;public class Test extends JFrame { private static final long serialVersionUID = -2397593626990759111L; private JPanel pane = null; private JButton button = null;

    public Test() {
    super("Test");
    pane = new JPanel();
    button = new JButton("Login");
    button.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent arg0) {
    Login.getInstance();
    }});
    pane.add(button);
    this.getContentPane().add(pane);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setSize(300, 200);
    this.setVisible(true);
    } public static void main(String args[]) {
    new Test();
    }}
    class Login extends JFrame {
    private static final long serialVersionUID = 1055721658253523596L; private static Login instance = null;

    private Login(){
    super("Login");
    this.setSize(new Dimension(200, 100));
    this.setVisible(true);
    } public static final void getInstance() {
    System.out.println(instance);
    if (instance == null)
    instance = new Login();
    else
    JOptionPane.showMessageDialog(null, "已经有一个实例在运行了~\n请不要打开多个实例...", "信息提示",
    JOptionPane.ERROR_MESSAGE);
    System.out.println(instance);
    }}