• 締切済み

プロセッシングが出来ません。

プロセッシングをしていて、ずっと「java.lang.NullPointerException」が出ています。 ですが、どこで起きているのかわかりません。 わかる人いたら教えてください。 String sc_data[]; int sc[][] = new int[sc_data.length][4]; void setup() { int dow, i; frameRate(1); size(480,640); sc_data = loadStrings("schedule.txt"); System.out.println(sc_data.length); for(i = 0; i < sc_data.length; i++){ sc[i] =int( sc_data[i].split(",")); println(sc[i]); } } int idx,k; int mo,d,h,m,s; int c_w = 60; float b_c,he,y; void set_color(int idx){ switch(idx){ case 1: fill(77,166,255,100); break; case 2: fill(128,255,0,100); break; case 3: fill(245,112,112,100); break; case 4: fill(117,125,198); break; case 5: fill(151,247,242); break; case 6: fill(255,214,70); break; case 7: fill(147,38,255); break; case 8: fill(2,214,70); break; case 9: fill(253,198,230); break; } } void make_sc(float y, int s[][], float t,int o){ int l; fill(255,255,255,100); rect(0,70,c_w,height); y = s[o][0]*25 + s[o][1]*5/12; t = s[o][2]*5/12; println(t); l = s[o][3] + 3; set_color(l); rect(0, y, c_w,t); } void barclock(float b){ b = h*25+m*5/12; //println(b); noStroke(); if ((b >= 0)&&(b < 150)){ set_color(1); } else if ((b >= 150)&&(b < 225)){ set_color(2); } else if ((b >= 225)&&(b < 450)){ set_color(3); } else { set_color(4); } rect(0,0,width,b); fill(0); textSize(15); text(+mo+" / "+d+" "+h+":"+m+":"+s,5,49); } void draw() { mo= month(); d = day(); h = hour(); m = minute(); s = second(); background(255); strokeWeight(1); barclock(b_c); for(int i = 0; i < sc_data.length; i++){ make_sc(y, sc, he,i); } }

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

Processing は触ったことないけど 1点: 2行目の int sc[][] = new int[sc_data.length][4]; って, 何してるの?

関連するQ&A

  • [至急!]Javaのプログラミング

    野球のBSOカウンタを作ろうとしているのですが、エラーが出ないもののうまく動きません。動作としてはsと入力したらSのカウンタに「〇」を表示、といったことをO(アウト)カウンタが3つになるまで行うプログラムなのですが、入力と出力の両方をうまくループすることが出来ません。分かる方がいたら教えてください。私が作ったものは下のものです。これを改良して作っていただけると助かります。 import java.io.*; public class test1 { public static void main(String[] args) throws IOException { BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); //String str=br.readLine(); //char hantei=str.charAt(0); int sc=0,bc=0,oc=0; while(oc<3){ String str=br.readLine(); char hantei=str.charAt(0); if(hantei=='s') { sc=sc+1; if(sc==3) oc=oc+1; sc=0; bc=0; } else if(hantei=='b') { bc=bc+1; if(bc==4) sc=0; bc=0; } else if(hantei=='o') { oc=oc+1; sc=0; bc=0; } else { System.out.println("入力が違います。"); } } System.out.print("B "); for(int i=0;i<=bc;i++){ System.out.print("〇"); } System.out.println(""); System.out.print("S "); for(int i=0;i<=sc;i++){ System.out.print("〇"); } System.out.println(""); System.out.print("O "); for(int i=0;i<=oc;i++){ System.out.print("〇"); } System.out.println(""); } } 出力例 s(入力) B S 〇 O s(入力) B S 〇〇 O s(入力) B S O 〇 これをアウトカウントが3つになるまで行うプログラムです。

    • ベストアンサー
    • Java
  • 複数の戻り値

    関数にポインタを渡して、結果を格納してもらう方法で 複数の戻り値を得ようとしたのですがうまく行きません どうしたら複数戻せますか? ---ソース--- #include <stdio.h> #include <stdlib.h> void check(int a,char *b,char *c); void main(void){ int a; char *b,*c; int i; char *va[5]={"2","3"}; for(i=0;i<5;i++){ //ここ何とかなったらwhileにしとこ if(va[i]!=NULL){ a=atoi(va[i]); check(a,b,c); printf("%s%s\n",b,c); } } } void check(int a,char *b,char *c){ switch(a){ case 0: b="0:×\n"; c="0:○\n"; break; case 1: b="1:×\n"; c="1:○\n"; break; case 2: b="2:×\n"; c="2:○\n"; break; case 3: b="3:×\n"; c="3:○\n"; break; case 4: b="4:×\n"; c="4:○\n"; break; } }

  • switch で疑問。java超初心者です。

    まず、 public class P1{   public static void main(String[] args){     int n = 1;       switch(n){         case 0:           System.out.println("あ");           break;         case 1:           System.out.println("い");           break;         case 2:           System.out.println("う");           break;         default:           System.out.println("え");       }   } } は、当然「い」と表示されますよね。 default: をcase 3:にしても、問題なく「い」と表示されました。 そこで、こんな風にしてみました。 public class P3{   public static void main(String[] args){     int n = 1;     String s;       switch(n){         case 0:           s="あ";           break;         case 1:           s="い";           break;         case 2:           s="う";           break;         default:           s="え";       }       System.out.println(s);   } } これは「い」と表示されましたが、 default: をcase 3:にすると、エラーとなってしまいます。なぜでしょう。 ちなみに、エラーの内容は 変数 s は初期化されていない可能性があります。     System.out.print(s);                ^ というものでした。 そこで、 変数 s を初期化してみようと、次のように変数 s の宣言の後に null を代入しました。 String s=null; すると、「い」と表示され、エラーは出ません。 なぜ、このようになるのでしょうか。 String型の変数を使っていて、今まではこのようなエラーは出た事が無かったのですが、 どうやらswitch文の中では、初期化しろ、と出てくるようです。 わかり易い解説をいただければと思います。 これは仕様だということで、この通り受け入れるしかないのでしょうか。 勉強していて、少々腑に落ちないので、質問致しました。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • 簡単なマインスイーパーをJavaで作りたいです。

    Javaの勉強をしたいと思い下のソースのマインスイーパーを ウィンドウ上で実行できるようにしたいです。 そのときに他のソースから呼び出す形にしたいです。 どのようにしたら良いでしょうか?教えてください。 出来ればソースがあるとありがたいです。 import java.util.Scanner; public class MineSweeper extends MinePrinter { public static void main(String[] args) { Scanner sc = new Scanner(System.in); MineSweeper game = new MineSweeper(); game.displayStrblock(); while (!game.dead) { System.out.println("\n:爆弾数・・・" + game.mines); System.out.println("\n:場所を選んでください"); System.out.println("縦の場所の数字を入力"); int tate = Integer.parseInt(sc.next()); System.out.println("横の場所の数字を入力"); int yoko = Integer.parseInt(sc.next()); game.mineClick(tate, yoko); game.displayStrblock(); } } } class MinePrinter { String[][] strblock = new String[5][5]; int[][] blocks = new int[5][5]; int mines = 0; boolean dead = false; public MinePrinter() { mineSet(); } void mineClick(int i, int j) { if (aroundManyMines(i, j) == 99) { System.out.println("burst!!!"); System.out.println("You Dead!!\n"); strblock[i][j] = "*"; dead = true; } else { strblock[i][j] = Integer.toString(aroundManyMines(i, j)); } } void mineSet() { for (int i = 0; i < blocks.length; i++) { for (int j = 0; j < blocks[i].length; j++) { if (Math.random() < 0.2) { blocks[i][j] = 99; mines += 1; } else { blocks[i][j] = 0; } } } for (int i = 0; i < strblock.length; i++) { for (int j = 0; j < strblock.length; j++) { strblock[i][j] = "#"; } } } void displayStrblock() { for (int i = 0; i < strblock.length; i++) { for (int j = 0; j < strblock.length; j++) { System.out.print(strblock[i][j] + " "); } System.out.println(":" + i); } } int aroundManyMines(int i, int j) { if (blocks[i][j] == 99) { return 99; } int ans = 0; for (int r = -1; r <= 1; r++) for (int c = -1; c <= 1; c++) { try { if (blocks[i + r][j + c] == 99) { ans += 1; } } catch (ArrayIndexOutOfBoundsException e) { continue; } } return ans; } }

    • ベストアンサー
    • Java
  • 多角形を動かす範囲を設定したいのですが…。

    多角形をKeyListenerで動かす範囲を設定 したいのですがどうすればいいでしょうか。 import java.awt.Color; import java.awt.Graphics; import java.awt.Polygon; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JFrame; import javax.swing.JPanel; public class JavaGame2 { public static void main(String age[]) { JFrame frame = new JFrame(); frame.setTitle("テスト"); frame.setSize(400, 400); frame.setLocation(1000, 200); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); MyPanel panel = new MyPanel(); frame.add(panel); frame.setVisible(true); } } class MyPanel extends JPanel implements KeyListener{ private Ziki ziki; public MyPanel() { setBackground(Color.black); ziki = new Ziki(); addKeyListener(this); setFocusable(true); } protected void paintComponent(Graphics g) { super.paintComponent(g); ziki.draw(g); } public void keyPressed(KeyEvent e) { int key = e.getKeyCode(); switch(key) { case KeyEvent.VK_UP : ziki.moveUpZiki(); break; case KeyEvent.VK_RIGHT :ziki.moveRightZiki(); break; case KeyEvent.VK_DOWN : ziki.moveDownZiki(); break; case KeyEvent.VK_LEFT : ziki.moveLeftZiki(); break; }repaint(); } public void keyReleased(KeyEvent e){} public void keyTyped(KeyEvent e){} } class Ziki { private Polygon p; public Ziki() { int[] xpoints = {240,260,250}; int[] ypoints = {260,260,240}; p = new Polygon(xpoints,ypoints,xpoints.length); } void draw(Graphics g) { g.fillPolygon(p); } public void moveLeftZiki() { for (int i=0; i < p.xpoints.length; i++ ) { p.xpoints[i] -= 5; } } public void moveRightZiki() { for (int i=0; i < p.xpoints.length; i++ ) { p.xpoints[i] +=5; } } public void moveUpZiki() { for (int i=0; i < p.ypoints.length; i++ ) { p.ypoints[i] -= 5; } } public void moveDownZiki() { for (int i=0; i < p.ypoints.length; i++ ) { p.ypoints[i] += 5; } } }

    • ベストアンサー
    • Java
  • 何故ループがしてくれないんですか?

    口でいうよりもソースコード載せた方が早いので載せます import java.util.Scanner; class StudentsList2 { public static void main(String[] args){ System.out.println("学生番号(23,45,78,51,9)を入力してください>"); Scanner sc=new Scanner(System.in); StList list=new StList(); list.ID=new int[]{23,45,78,51,9}; list.name=new String[]{"荒川","神田","吉田","渡辺","木村"}; int key=Integer.parseInt(sc.next()); list.getName(key); } static class StList{ public String[] name; public int[] ID; void getName(int key){ for(int A=0; A<ID.length; A++){ if(key==ID[0]){ System.out.println(name[0]);break; }else{ if(key==ID[1]){ System.out.println(name[1]);break; }else{ if(key==ID[2]){ System.out.println(name[2]);break; }else{ if(key==ID[3]){ System.out.println(name[3]);break; }else{ if(key==ID[4]){ System.out.println(name[4]);break; } } } } } } } } } 例外処理もなくエラーもかえって来ないんですが一回しか学生名が出力しないです。 何故でしょうか? nameに入っている名前を出力しないといけないですよね。 「ここがおかしいよ」とかのアドバイスをお願いします

    • ベストアンサー
    • Java
  • プログラムを読む

    public class ShowMaxData { public static void main(String[] args){ int[] data = {31, 41, 59, 26, 53, 58, 97, 93,23, 84} int max_data = data[0] for(int = 0 ; i<data.length ; i++){ if(max_data <data[i]){ max_data = data[i] } } System.out.println("最大値は"+max_data+"です。") } } これは最大値を求めるプログラムですがこの内容の中で質問があります。 for文はi=10になって初めてfor文を抜けてSystem.out.printlnが実行されるのですよね? 分かる方宜しくお願いします。

  • arraycopy コンパイルエラー

    javaの勉強をしているのですが arraycopy()を使ったプログラムでエラーが出てしまいます。 class Ex97{ public static void main(String args[]){ int []a = new int[10]; int []b = new int[5]; for(int i=0; i<10; i++){ a[i] = (int)(Math.random()*10); } System.arraycopy(a, 2, b, 0, 5); for(int i=0; 0<a.length-1; i++){ System.out.println(a[i]); } System.out.println(""); for(int i=0; 0<b.length; i++){ System.out.println(b[i]); } } } /*メッセージ Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10 at Ex32.main(Ex32.java:13) */ このプログラムはaの3番目の要素から5つ分の内容をbへコピーする というものです。 ご回答よろしくお願いします。

    • ベストアンサー
    • Java
  • Java言語のプログラムをC言語にする場合

    次の2つのJava言語のプログラムをC言語にしたいのですが、C言語でプログラムを書いたことがありません。C言語にする場合はどう書けばいいのでしょうか? import java.io.*; public class Sort { public static void main(String[] args) { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); try{ System.out.println("整数値を入力してください"); String line = reader.readLine(); int a = Integer.parseInt(line); String line2 = reader.readLine(); int b = Integer.parseInt(line2); String line3 = reader.readLine(); int c = Integer.parseInt(line3); String line4 = reader.readLine(); int d = Integer.parseInt(line4); int[] data = {a, b, c, d}; for (int i = 0; i< data.length - 1 ; i++) { for (int j = i + 1; j< data.length; j++) { if(data[i] > data[j]) { int e = data[i]; data[i] = data[j]; data[j] = e; } } } System.out.println("昇順に並べ替えると、"); for (int i = 0; i< data.length; i++) { System.out.print(data[i] + " "); } System.out.println("です。"); } catch (IOException e){ System.out.println(e); } catch (NumberFormatException e) { System.out.println("数式の形式が正しくありません。"); } } } import java.io.*; public class Yakusu { public static void main(String[] args) { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); try{ System.out.println("2つの整数値を入力してください"); System.out.print("整数A : "); String line = reader.readLine(); int a = Integer.parseInt(line); System.out.print("整数B : "); String line2 = reader.readLine(); int b = Integer.parseInt(line2); if(a%b == 0){ System.out.println("BはAの約数です"); } else { System.out.println("BはAの約数ではありません"); } } catch (IOException e){ System.out.println(e); } catch (NumberFormatException e) { System.out.println("数式の形式が正しくありません。"); } } }

  • JAVAコンストラクタについて

    JAVA のコンストラクタ定義の際に、下記のようにコンストラクタにvoidを付けた時と付けない時の処理結果が変わるのはなぜでしょうか。 (1) class O { protected int d; O(){ System.out.println("O = " + d); } } class Study_6_3main_void { public static void main(String args[]) { int i = 1; O OO = new O(); System.out.println("O = "); } } (2) class O { protected int d; void O(){ System.out.println("O = " + d); } } class Study_6_3main_void { public static void main(String args[]) { int i = 1; O OO = new O(); System.out.println("O = "); } } 実行結果 (1) O = 0 O = (2) O = 以上です。回答の程よろしくおねがいします。

    • ベストアンサー
    • Java