JAVA写的单件模式
我看了一个软件,上面提到了单件模式,自己写了一个,就是一个对话框,这个类有个变量 a,点击一次按钮,就把变量加一。
基本上是按照单件模式写的,但是,怎么能有运行起来两个对话框呢,单件模式不是只有一个实例么,而且,两个对话框的变量都不同啊,一个实例怎么会这样呢?
import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;public class Singleton extends JFrame{ int a = 1; private JTextField titleField; private static Singleton singleton=null; private JButton jb; private Singleton() { JPanel p = new JPanel(); p.setLayout(new GridLayout(3,1)); p.add(new JLabel("Book title:")); this.titleField = new JTextField(15); this.jb = new JButton(); p.add(this.titleField); jb.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ev) { try { a++; String s = new String(); Integer i = new Integer(a); titleField.setText(i.toString()); } catch (Exception e) { } } }); p.add(jb); Integer i = new Integer(a); titleField.setText(i.toString()); this.add(p); } public static Singleton instance() { if(singleton==null) singleton = new Singleton(); return singleton; } public static void main(String[] args) { instance().show(); }}