Why that Java program isn't painting? -
i have problem, program isn't compiling. i'm trying paint dots file have records calculate. don't know problem. when i'm trying run that, console showing errors jframe opening. there black layout 2 recentagles. it should head conture! errors:
exception in thread "awt-eventqueue-0" java.lang.indexoutofboundsexception: index: 504542, size: 504540 @ java.util.arraylist.rangecheck(unknown source) @ java.util.arraylist.get(unknown source) @ rysuje.rysowanie.wezliczbe(rysowanie.java:40) @ rysuje.rysowanie.paintcomponent(rysowanie.java:57) @ javax.swing.jcomponent.paint(unknown source) @ javax.swing.jcomponent.paintchildren(unknown source) @ javax.swing.jcomponent.paint(unknown source) @ javax.swing.jcomponent.paintchildren(unknown source) @ javax.swing.jcomponent.paint(unknown source) @ javax.swing.jlayeredpane.paint(unknown source) @ javax.swing.jcomponent.paintchildren(unknown source) @ javax.swing.jcomponent.painttooffscreen(unknown source) @ javax.swing.repaintmanager$paintmanager.paintdoublebuffered(unknown source) @ javax.swing.repaintmanager$paintmanager.paint(unknown source) @ javax.swing.repaintmanager.paint(unknown source) @ javax.swing.jcomponent.paint(unknown source) @ java.awt.graphicscallback$paintcallback.run(unknown source) @ sun.awt.sungraphicscallback.runonecomponent(unknown source) @ sun.awt.sungraphicscallback.runcomponents(unknown source) @ java.awt.container.paint(unknown source) @ java.awt.window.paint(unknown source) @ javax.swing.repaintmanager$4.run(unknown source) @ javax.swing.repaintmanager$4.run(unknown source) @ java.security.accesscontroller.doprivileged(native method) @ java.security.protectiondomain$javasecurityaccessimpl.dointersectionprivilege(unknown source) @ javax.swing.repaintmanager.paintdirtyregions(unknown source) @ javax.swing.repaintmanager.paintdirtyregions(unknown source) @ javax.swing.repaintmanager.prepaintdirtyregions(unknown source) @ javax.swing.repaintmanager.access$1200(unknown source) @ javax.swing.repaintmanager$processingrunnable.run(unknown source) @ java.awt.event.invocationevent.dispatch(unknown source) @ java.awt.eventqueue.dispatcheventimpl(unknown source) @ java.awt.eventqueue.access$500(unknown source) @ java.awt.eventqueue$3.run(unknown source) @ java.awt.eventqueue$3.run(unknown source) @ java.security.accesscontroller.doprivileged(native method) @ java.security.protectiondomain$javasecurityaccessimpl.dointersectionprivilege(unknown source) @ java.awt.eventqueue.dispatchevent(unknown source) @ java.awt.eventdispatchthread.pumponeeventforfilters(unknown source) @ java.awt.eventdispatchthread.pumpeventsforfilter(unknown source) @ java.awt.eventdispatchthread.pumpeventsforhierarchy(unknown source) @ java.awt.eventdispatchthread.pumpevents(unknown source) @ java.awt.eventdispatchthread.pumpevents(unknown source) @ java.awt.eventdispatchthread.run(unknown source) exception in thread "awt-eventqueue-0" java.lang.indexoutofboundsexception: index: 504542, size: 504540 @ java.util.arraylist.rangecheck(unknown source) @ java.util.arraylist.get(unknown source) @ rysuje.rysowanie.wezliczbe(rysowanie.java:40) @ rysuje.rysowanie.paintcomponent(rysowanie.java:57) @ javax.swing.jcomponent.paint(unknown source) @ javax.swing.jcomponent.paintchildren(unknown source) @ javax.swing.jcomponent.paint(unknown source) @ javax.swing.jcomponent.paintchildren(unknown source) @ javax.swing.jcomponent.paint(unknown source) @ javax.swing.jlayeredpane.paint(unknown source) @ javax.swing.jcomponent.paintchildren(unknown source) @ javax.swing.jcomponent.painttooffscreen(unknown source) @ javax.swing.repaintmanager$paintmanager.paintdoublebuffered(unknown source) @ javax.swing.repaintmanager$paintmanager.paint(unknown source) @ javax.swing.repaintmanager.paint(unknown source) @ javax.swing.jcomponent.paint(unknown source) @ java.awt.graphicscallback$paintcallback.run(unknown source) @ sun.awt.sungraphicscallback.runonecomponent(unknown source) @ sun.awt.sungraphicscallback.runcomponents(unknown source) @ java.awt.container.paint(unknown source) @ java.awt.window.paint(unknown source) @ javax.swing.repaintmanager$4.run(unknown source) @ javax.swing.repaintmanager$4.run(unknown source) @ java.security.accesscontroller.doprivileged(native method) @ java.security.protectiondomain$javasecurityaccessimpl.dointersectionprivilege(unknown source) @ javax.swing.repaintmanager.paintdirtyregions(unknown source) @ javax.swing.repaintmanager.paintdirtyregions(unknown source) @ javax.swing.repaintmanager.prepaintdirtyregions(unknown source) @ javax.swing.repaintmanager.access$1200(unknown source) @ javax.swing.repaintmanager$processingrunnable.run(unknown source) @ java.awt.event.invocationevent.dispatch(unknown source) @ java.awt.eventqueue.dispatcheventimpl(unknown source) @ java.awt.eventqueue.access$500(unknown source) @ java.awt.eventqueue$3.run(unknown source) @ java.awt.eventqueue$3.run(unknown source) @ java.security.accesscontroller.doprivileged(native method) @ java.security.protectiondomain$javasecurityaccessimpl.dointersectionprivilege(unknown source) @ java.awt.eventqueue.dispatchevent(unknown source) @ java.awt.eventdispatchthread.pumponeeventforfilters(unknown source) @ java.awt.eventdispatchthread.pumpeventsforfilter(unknown source) @ java.awt.eventdispatchthread.pumpeventsforhierarchy(unknown source) @ java.awt.eventdispatchthread.pumpevents(unknown source) @ java.awt.eventdispatchthread.pumpevents(unknown source) @ java.awt.eventdispatchthread.run(unknown source) program:
package rysuje; import java.awt.color; import java.awt.dimension; import java.awt.graphics; import java.io.file; import java.util.arraylist; import java.util.locale; import java.util.scanner; import javax.swing.jframe; import javax.swing.jpanel; public class rysowanie extends jpanel { arraylist<double> liczby = new arraylist<double>(); public rysowanie () { try { file file = new file("pliki/wynik5.xyz"); scanner input = new scanner(file); input.uselocale(locale.english); while (input.hasnextdouble()) { dodajliczbe(input.nextdouble()); } input.close(); } catch (exception ex) { ex.printstacktrace(); } system.out.println("zaĆadowalem tyle plikow: "+ileliczb()); } public void dodajliczbe(double liczba) { liczby.add(liczba); } public double wezliczbe(int indeks) { return liczby.get(indeks); } public int ileliczb() { return liczby.size(); } public void paintcomponent(graphics g) { super.paintcomponent(g); int x; int z; int c = 0; int d = (int) 0.1; int e = 2; (int = 0; < liczby.size(); i++) { x = (int) (wezliczbe(e) * math.sin(wezliczbe(c) * math.pow(10, -6))); z = (int) (wezliczbe(e) * math.cos(wezliczbe(c) * math.pow(10, -6))); g.setcolor(color.black); g.drawoval(x, z, d, d); if (c < liczby.size()-3 ) { c = c + 3; } else if (e < liczby.size()-3) { e = e + 3; } } } public dimension getpreferredsize() { return new dimension(200, 200); } public static void main(string[] args) { jframe frame = new jframe("nie wiem"); jpanel world = new rysowanie(); frame.getcontentpane().add(world); frame.setlocation(200, 200); frame.setvisible(true); frame.pack(); } }
when call
e = e + 3; in loop getting indexoutofbounds when calling
wezliczbe(e)
Comments
Post a Comment