【问题标题】:java class cant find variable in same projectjava类在同一个项目中找不到变量
【发布时间】:2014-07-06 17:38:54
【问题描述】:

你好!我正在使用 netbeans 在 java 中制作一个超级简单的聊天应用程序。我有一个主要课程和一个 jframe 课程。在 jframe 类中,我正在尝试使用此代码:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    String msg = jTextField1.getText();
    jTextArea1.setText(msg);
    String msgout = msg;
    dataout.writeUTF(msgout);
    dataout.flush();
    }   

但它说,找不到符号数据输出。这里我在主类中使用数据输出:

try {
            System.out.println("Waiting for clients to connect...");
            Socket s = ss.accept(); 
            DataOutputStream dataout = new DataOutputStream(s.getOutputStream());
            System.out.println("Client connected!");

            }
            catch(IOException e){
                System.out.println("Error");
            }

我该如何解决?

【问题讨论】:

    标签: java swing class variables symbols


    【解决方案1】:

    由于 dataout 是在 try/catch 块内创建的,它的生命周期仅在这些大括号内。最好的方法是将其声明为实例变量,然后像这样访问它。

    例如。

    DataOutputStream dataout = null;
    
    try {
                System.out.println("Waiting for clients to connect...");
                Socket s = ss.accept(); 
                dataout = new DataOutputStream(s.getOutputStream());
                System.out.println("Client connected!");
    
                }
                catch(IOException e){
                    System.out.println("Error");
                }
    

    【讨论】:

    • 我现在和你一样在主类里做了,但是jFrameClass还是找不到,我怎么写代码让jFrame能找到呢?
    • JFrame 类是不是主类的独立类?如果是这样,您需要以适合您正在做的事情的方式访问该变量。
    • 是的,它是同一个项目,但要分开类,首先是处理正在连接的客户端的主类。另一个类是 jFrame 类。 jFrame 类似乎没有找到存储在主类中的任何变量,这就是我认为的问题
    • 除非您创建该类的实例,否则您无法访问存储在另一个类中的任何变量。我不确定,但我认为你能做的最好的事情就是通过 JFrame 的构造函数传递数据。例如。类 jframeclass= 新类(数据输出);
    • 我会试试的!感谢您的快速回答!
    猜你喜欢
    • 1970-01-01
    • 2015-07-28
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多