如何将 main 中的数组用于摆动图?
How can I use arrays from main for a swing graph?
我有一个 java class,主要是在 net beans 中,我在其中计算 10000 或 10000000 个双精度值,并将它们存储在 x[] 和 y[] 中。
我想用连接的蓝色点在 x-y 轴上制作这些双精度值的简单图表
最简单的方法是什么(使用 main 的 x[] y[],在 paint 方法和循环 0-100000 中绘制点和线)?
例如我有:
public class sth extends JFrame{
public sthfiltra(){
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...
sth frame = new sth();
frame.setSize(200,200);
frame.setVisible(true);
}
}
您应该能够将参数添加到您的绘画方法中。
public void paint(Graphics g, int[] x, int[] y){
for(int i = 1; i < x.size && i < y.size; i++){
g.drawLine(x[i-1],y[i-1],x[i],y[i]);
}
这将使您能够访问它们。
我在for循环中加入了第二个条件,这样你就不会运行进入数组索引越界的问题了。
public void paint(Graphics g, int size, double[] x, double[] y) {
for (int i = 1; i < size; i++) {
g.drawLine(Math.round((long) x[i - 1] * 10000), Math.round((long) y[i - 1] * 10000), Math.round((long) x[i] * 10000), Math.round((long) y[i] * 10000));
}
}
我有一个 java class,主要是在 net beans 中,我在其中计算 10000 或 10000000 个双精度值,并将它们存储在 x[] 和 y[] 中。 我想用连接的蓝色点在 x-y 轴上制作这些双精度值的简单图表 最简单的方法是什么(使用 main 的 x[] y[],在 paint 方法和循环 0-100000 中绘制点和线)?
例如我有:
public class sth extends JFrame{
public sthfiltra(){
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...
sth frame = new sth();
frame.setSize(200,200);
frame.setVisible(true);
}
}
您应该能够将参数添加到您的绘画方法中。
public void paint(Graphics g, int[] x, int[] y){
for(int i = 1; i < x.size && i < y.size; i++){
g.drawLine(x[i-1],y[i-1],x[i],y[i]);
}
这将使您能够访问它们。
我在for循环中加入了第二个条件,这样你就不会运行进入数组索引越界的问题了。
public void paint(Graphics g, int size, double[] x, double[] y) {
for (int i = 1; i < size; i++) {
g.drawLine(Math.round((long) x[i - 1] * 10000), Math.round((long) y[i - 1] * 10000), Math.round((long) x[i] * 10000), Math.round((long) y[i] * 10000));
}
}