在我的大學裏,我必須做一個項目,其中包括一個必須使用Java對其自己的座標系進行調整的部分,它必須是動態的,並且是一個小程序。如何在Java中將外部數據放入數組中
它大部分已經完成,但我不知道如何將外部數據放入我的數組。我不知道有多少個參數(它可能是10,但也可能是10000)。
那麼如何告訴數組需要多少空間以及如何將參數放入數組?
它將總是x和y座標,所以我有2個數組。
這是我已經試過的代碼。我爲數組硬編碼參數只是爲了查看它是否工作。
下面的java代碼我發佈html代碼。在那是我想添加到我的數組參數。
import java.awt.*;
import java.applet.Applet;
import java.lang.Math;
public class graph extends java.applet.Applet {
//Array x-Werte
private double[] WerteX= {0.0, 5.5, 6.5, 7.0, 16.6, 50.6};
//Array y-Werte
private double[] WerteY= {0.0 , 100.0, 320.0, 550.0, 700.0, 0.3};
public void init() {
// Hintergrundfarbe schwarz
setBackground (Color.black);
}
public void paint (Graphics g) {
float x, y;
int xnorm, ynorm, i;
// initialisierung der min und max X/Y werte damit sich das System anpasst
double minX= WerteX [0];
double maxX= WerteX [0];
double minY= WerteY [0];
double maxY= WerteY [0];
// zum Kleinsten bzw. größten Wert im Array raussuchen (Prinzip Bubbelsotrt (ungefähr))
for (i=1; i<WerteX.length; i++) {
if (WerteX[i]<minX){
minX=WerteX[i];
}
if (WerteX[i]>maxX){
maxX=WerteX[i];
}
if (WerteY[i]<minY){
minY=WerteY[i];
}
if (WerteY[i]>maxY){
maxY=WerteY[i];
}
}
// Vordergrundfarbe Rot fuer die Achsen
g.setColor (Color.red);
// X-Achse zeichnen (schon skaliert auf 500%)
g.drawLine (0, 650, 650, 650);
// Y-Achse zeichnen (schon skaliert auf 500%)
g.drawLine (100, 0, 100, 650);
// Skaleneinteilung fuer die X-Achse zeichnen
for (i = 100; i <= 750; i += 150){
g.drawLine (i, 0, i, 650);
}
// Skaleneinteilung fuer die Y-Achse zeichnen
for (i = 0; i <= 650; i += 50){
g.drawLine (100, i, 750, i);
}
double Irgendwasdx=maxX-minX; // achsen bezeichnung
double Irgendwasdy=maxY-minY;
maxX+=Irgendwasdx/12;
maxY+=Irgendwasdy/12;
g.setColor(Color.red); // farbe des Systems und schrift
g.setFont(new Font("Arial", Font.BOLD, 20));
// Koordinatenbezeichnung x-Achse
i=0;
for (double plotty= minX; plotty<=maxX; plotty+=(maxX-minX)/(13.0/3.0)){
g.drawString(String.valueOf(Math.round(plotty)), 100+i*150, 670); //runden
i++;
}
//Koordinatenbezeichnung y-Achse
i=0;
for (double plotty= minY; plotty<=maxY; plotty+=(maxY-minY)/13){
g.drawString(String.valueOf(Math.round(plotty)), 80 ,650-50*i); //runden
i++;
}
int size = WerteX.length;
g.setColor (Color.white);
for (i=0; i<size; i++) { //Punkte
g.fillOval ((int)(WerteX[i]*650/(maxX-minX)-650*minX/(maxX-minX))+100-3, 650-(int)(WerteY[i]*650/(maxY-minY)-650*minY/(maxX-minY))-3, 6, 6);
}
//Punkte verbinden
for (i=0; i<size-1; i++) {
g.drawLine ((int)(WerteX[i]*650/(maxX-minX)-650*minX/(maxX-minX))+100, 650-(int)(WerteY[i]*650/(maxY-minY)-650*minY/(maxX-minY)),(int)(WerteX[i+1]*650/(maxX-minX)-650*minX/(maxX-minX))+100, 650-(int)(WerteY[i+1]*650/(maxY-minY)-650*minY/(maxX-minY)));
}
}
}
<html>
<head>
</head>
<body>
<Applet code="graph.class" width="700" height="700">
<param name= "P" value=5>
<param name="x0" value="0.60">
<param name="x1" value="1.20">
<param name="x2" value="2.50">
<param name="x3" value="3.40">
<param name="x4" value="3.80">
<param name = "N" value =5>
<param name="y0" value="0.00">
<param name="y1" value="0.12">
<param name="y2" value="0.25">
<param name="y3" value="0.37">
<param name="y4" value="0.50">
</Applet>
</body>
</html>
例如,構造一個新的數組,可以包含七個雙打==>'double [] = new double [7]'。如果你希望它具有'無限'空間,請嘗試使用ArrayList。此外,由於您使用的是面向對象編程語言,因此您可以創建自己的座標類,它可以產生許多座標對。 –
MrKickkiller
對不起,我忘記了我是一個absulut初學者,所以請稍微詳細一點.... :) – JustMe
1)爲什麼要編寫一個小程序?如果是由於老師指定它,請將它們轉介給[爲什麼CS教師應該**停止**教Java applets](http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should -stop教學-java的小應用程序/)。 2)請參閱[不支持Java插件的支持](http://www.gizmodo.com.au/2016/01/rest-in-hell-java-plug-in/)和[轉移到無插件Web]( https://blogs.oracle.com/java-platform-group/entry/moving_to_a_plugin_free)。 .. –