想在线程的run()函数中使用Main Function中的一个int数组

时间:2010-11-22 07:42:23

标签: java multithreading

public class fraktal extends JFrame   {

 public fraktal (String args[]) {
  calc = new Calculator(632,453,raster, this);    
  }
 calc.start();


 } 
 public static void main(String args[]) {
  new fraktal(args);
 }

}

class Calculator extends Thread {
 public Calculator(int sx, int sy, WritableRaster r, JFrame p) {

 public void run() {  
  int[] dataArray = new int[3600000];
  raster.getPixels(0,0,32,53,dataArray);  
  //System.out.println(Arrays.toString(dataArray));    
 } 
}

我想使用“dataArray”,Main中的一个int数组,我怎么能得到它? 谢谢!

2 个答案:

答案 0 :(得分:1)

在你的代码中有很多错误,如果你只是想在Main方法中使用dataArray这里是片段。尝试纠正错误,并检查给出的链接

import java.awt.*;
import java.util.*;
import javax.swing.*;
import java.awt.image.WritableRaster;


public class fraktal extends JFrame   {
 int[] dataArray;
 public fraktal (String args[]) {
  Calculator calc = new Calculator(dataArray);    
  calc.start();
  }




 public static void main(String args[]) {
 fraktal ob =  new fraktal(args);
 System.out.println(ob.dataArray);
 }

}

class Calculator extends Thread {
 int[] dataArray;

 public Calculator(int[] dataArray) {
   this.dataArray = dataArray;
 }
 public void run() {    
  System.out.println(Arrays.toString(dataArray));    
 } 
}   

Java Variable Scope Documentation

答案 1 :(得分:0)

您可以轻松地将getter添加到Calculator和fraktal。像getMyArray()一样Smt。