【问题标题】:Public variables, Local variables in JAVA [closed]公共变量,JAVA中的局部变量[关闭]
【发布时间】:2014-12-08 14:08:12
【问题描述】:

我需要 Java 方面的帮助。

使用过 VB.NET,您可以理解我的困境。我是 Java GUI 的新手。我创建了一个带有按钮、添加、编辑、保存的摇摆表单。单击添加时,我想将某些全局变量(例如 isAdding)的状态设置为 TRUE,并在单击编辑按钮时将其设置为 FALSE。这是为了让我决定调用插入 sql 脚本或更新 sql 脚本。

问题是,我正在摸索构造函数和封装等来做到这一点。如上所述,我怎样才能很容易地做到这一点?

【问题讨论】:

标签: java swing


【解决方案1】:

全局状态不是一个好的做法,可能会产生副作用。 您应该创建一个显示在屏幕上的数据模型。 例如,当模型由于用户操作而更改时,应该更新屏幕。 如果用户输入数据(文本输入),那么模型也必须更新。 为了使模型和屏幕保持同步,您可以实现观察者模式,因为 Swing 没有数据绑定。

【讨论】:

    【解决方案2】:

    其实我不明白你说的全局变量是什么意思。但是当我在 JAVA GUI 中做事件句柄时,我通常喜欢下面的方式。

    class Editeur implements ActionListener{
        Frame theFrame;
        Panel theButtons;
        Button toRead;
        Button toWrite;
       //the other components
    
    
        Editeur(){
            super();
    
        }
        void execute(){
            // initialization
            theFrame.addWindowListener(new WindowAdapter() {
                   public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
            });
         }
        public void read() {
            //do somethings
        }
        public void write() {
           //do somethings
    
        }
        public void actionPerformed(ActionEvent e) {
            //when toRead is clicked, read();toWrite is clicked, write()
            if (e.getSource().equals(toRead)) {
                read();
            }else if (e.getSource().equals(toWrite)){
                write();
            }
            else{
               // do somethings
            }
       }
       public static void main(String[] args){
            (new Editeur()).execute();
    
       }
    }
    

    【讨论】:

    • 这看起来有点像这个想法,但是因为我是 JAVA 的新手,所以在这个阶段我不了解它的复杂性。
    • @Sylvester 这并不复杂。我只是添加了两个按钮:'Button toRead;按钮写入;'在read函数中,添加一些你想在点击阅读时执行的代码。actionPerformed函数是ActionListener接口中的函数。
    猜你喜欢
    • 2013-08-29
    • 1970-01-01
    • 2022-06-10
    • 2012-09-25
    • 2017-04-30
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    • 2016-04-06
    相关资源
    最近更新 更多