非静态变量参考误差 [英] Non-static variable reference error

查看:111
本文介绍了非静态变量参考误差的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



有人可以帮我解决程序中的以下错误吗?

testThread.java:98:不能从静态上下文引用非静态变量lb1
lb1.add(String.valueOf(lower));

这是我的程序:

Hi,

Can anybody please help me to fix the following error in my program.

testThread.java:98: non-static variable lb1 cannot be referenced from a static context
lb1.add(String.valueOf(lower));

This is my program:

import java.io.*;
import java.lang.*;
import java.awt.*;
import java.awt.event.*;

class testThread extends Frame implements ActionListener,Runnable
{
 int lower,upper;
 
 Label l1=new Label("ODD");
 Label l2=new Label("EVEN");
 List lb1=new List();
 List lb2=new List();
 Button b2=new Button("EXIT");

  void test(int low,int up)
 {
  lower = low;
  upper = up;
  setLayout(new FlowLayout());
  setSize(700,700);
  setTitle("Thread Demo");
  setVisible(true);
  add(l1);add(lb1);add(l2);add(lb2);add(b2);
  b2.addActionListener(this);
  Thread t=new Thread(this);
  t.start();


 addWindowListener(
              new WindowAdapter()
               {
                 public void windowClosing(WindowEvent e)
                   { System.exit(0); }
               }
             );

 }


 public void actionPerformed(ActionEvent ae)
 {
  if(ae.getSource()==b2)
    System.exit(0);
 }

 public void run()
 {
  try
  {
   if((lower % 2) != 0)
   {
   lower = lower + 1;
   }
   while(lower <= upper)
   {
    Thread.sleep(1000);
    lb2.add(String.valueOf(lower));
    lower += 2;
    Thread.sleep(500);
   }
  }catch(Exception e){}
 }


 public static void main(String[] args)
 {
     
             testThread obj=new testThread();

 
   
  		int lower,upper;
 		lower = Integer.parseInt(args[0]);
  		upper = Integer.parseInt(args[1]);

          obj.test(lower,upper);

  		if((lower % 2) == 0)
  			{
    				lower = lower + 1;
  			}

  		 try
    			{
      				while(lower <= upper)
      				{
        				Thread.sleep(1000);
        				lb1.add(String.valueOf(lower));
        				lower = lower + 2;
        				Thread.sleep(500);
      				}
   			 }
   		 catch(Exception e){}
	 }

推荐答案

好吧,错误消息说明了一切.

可能您需要更改行
Well, the error message says it all.

Probably you need to change the line
vidhyaej写道:
vidhyaej wrote:

lb1.add(String.valueOf(lower));

lb1.add(String.valueOf(lower));



至:



to:

obj.lb1.add(String.valueOf(lower));




请注意, l1,l2,lb1,lb1 确实是变量的较差名称.

:)




As a side note, l1,l2,lb1,lb1 are really poor names for variables.

:)


这篇关于非静态变量参考误差的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆