我想使用main的一些数组来绘制方法。例如,我需要paint方法使用的数组x[]和y[]。我应该将代码实现为方法还是构造函数?
import java.io.*;
import java.util.Scanner;
import static java.lang.Math.pow;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.awt.*;
import javax.swing.*;
public class filtra extends JFrame{
public filtra(){
super();
}
@Override
public void paint(Graphics g){
for(int c=1; c<size; c++){
g.drawLine(x[i-1],y[i-1],x[i],y[i]);
}
}
public static void main(String[] args) throws IOException {
// [...] in main i have some code. For example i want to use arrays x[i] and y[i] for visualization...
filtra frame = new filtra();
frame.setSize(200,200);
frame.setVisible(true);
}
}
我在netbeans中有一个java类main,在这里我计算10000或10000000个双值,并将它们存储在x[]和y[]中。我想在x-y轴上用蓝色点连接这些双值的简单图,最简单的方法是什么(使用主的x[]y[],在绘制方法中,循环0-100000来绘制点和线)?
我不完全理解你的问题,但是,如果你想在你的绘制方法中访问主方法的数组,那么试试这个:
import java.io.*;
import java.util.Scanner;
import static java.lang.Math.pow;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.awt.*;
import javax.swing.*;
public class filtra extends JFrame{
//declare arrays here
static int[] x=new int[10];
static int[] y=new int[10];
public filtra(){
super();
}
public void paint(Graphics g){
int size=10;
for(int c=1; c<size; c++){
g.drawLine(x[i-1],y[i-1],x[i],y[i]);
}
}
public static void main(String[] args) throws IOException {
//do something with arrays example:
x[1]=554;
y[1]=248;
filtra frame = new filtra();
frame.setSize(200,200);
frame.setVisible(true);
}
希望这能有所帮助。
在您的filtra类中创建一个setter方法。
private int[] x;
private int[] y;
public void setData(int[] x, int[] y) {
this.x=x;
this.y=y;
}
并主要使用它,这样,您可以启动JFrame的许多实例,每个实例都绘制了不同的数据,这对您来说可能很有用。