strichcode-generator

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

ich hab mir gerade einen Strichcodegenerator programmiert. es hat alles funktioniert, bis ich es etwas erweitert habe:
wenn der button der den strichcode zeichnet gedrückt wird, soll das jpanel übermalt werden. das passiert auch nur wird auch der strichcode selbst übermalt:
Code:
 jPanel1.repaint();       
       Random a = new Random();
       for(int i=0;i<50;i++)
       {
       Graphics g = jPanel1.getGraphics();
       int b=a.nextInt(100)+((jPanel1.getWidth()-100)/2);
       g.drawLine(b,((jPanel1.getHeight()-80)/2),b,((jPanel1.getHeight()+80)/2));
       }

An was könnte denn das liegen?
 
S

SlaterB

Gast
das repaint() macht erstmal noch nix, sondern setzt das JPanel nur intern auf eine Liste zu zeichnender Objekte,
dann malst du deinen Strichcode und irgendwann später wird das JPanel neu gezeichnet und deine Linien sind weg

->
NIEMALS getGraphics(); aufrufen,
gezeichnet wird nur, indem mal paintComponent(Graphics g) überschreibt
 
M

minty

Gast
Hallo

Ich habe versucht - in RealJ - ein Programm zu schreiben, welches einen zufälligen Strichcode generiert.

Nach dem Kompilieren werden keine Fehler angezeigt, wenn ich das Applet aber starte funktioniert nichts. Kann mir bitte jemand helfen?

Java:
import java.awt.*;
import java.applet.*;

public class Strichcode extends Applet
{
	int abst[] = new int [3];
	int str[] = new int [3];
	
	public void init()
	{
		for(int a=0; a==2; a++){
			abst[a] = (a+1) + abst[a];
		}
	
		for(int s=0; s==2; s++){
			str[s] = (s+1) + str[s];
		}
	}
	
	public void generiereStrichcode(Graphics g)
	{
		int zuf1 = (int)(Math.random()*3);
		int zuf2 = (int)(Math.random()*3);
		
		switch(abst[zuf1]-1)
			{
  			case 1: g.drawLine(20, 20, 20, 80); break;
  			case 2: g.drawLine(20, 20, 20, 80); 
			  		  g.drawLine((20+1), 20, (20+1), 80); break;
  			case 3: g.drawLine(20, 20, 20, 80);
					  g.drawLine((20+1), 20, (20+1), 80);
					  g.drawLine((20+2), 20, (20+2), 80); break;
  			default: g.drawString("FEHLER!",20, 20); 
			}
		
		int xPos = 20;		
		
		for(int i=0; i<=30; i++){	
		
			int zuf3 = (int)(Math.random()*3);	
					
			switch(abst[zuf2-1])
			{
  			case 1: g.drawLine((xPos+str[zuf3-1]), 20, xPos+str[zuf3-1], 80); break;
  			case 2: g.drawLine((xPos+str[zuf3-1]), 20, xPos+str[zuf3-1], 80);
		    		  g.drawLine((xPos+str[zuf3-1]+1), 20, (xPos+str[zuf3-1]+1), 80); break;
  			case 3: g.drawLine((xPos+str[zuf3-1]), 20, xPos+str[zuf3-1], 80);
					  g.drawLine((xPos+str[zuf3-1]+1), 20, (xPos+str[zuf3-1]+1), 80);
					  g.drawLine((xPos+str[zuf3-1]+2), 20, (xPos+str[zuf3-1]+2), 80); break;
  			default: g.drawString("FEHLER!",20, 20); 		  
			} 
		}
		
		//if(abst[zuf] == 1)
			//g.drawLine(xPos1, yPos1, xPos2, yPos2);
				//else if(abst[zuf] == 2)
					//g.drawLine(xPos1, yPos1, xPos2, yPos2);
					//g.drawLine(xPos1+1, yPos1, xPos2+1, yPos2);
						//else if(abst[zuf] == 3)
							//g.drawLine(xPos1, yPos1, xPos2, yPos2);
							//g.drawLine(xPos1+1, yPos1, xPos2+1, yPos2);
							//g.drawLine(xPos1+2, yPos1, xPos2+2, yPos2);
		}

Liebe Grüße
minty
 
Sonecc

Sonecc

Gesperrter Benutzer
*glaskugel anschaue*
*niese und sie dabei anstoße*
*galskugel beobachte wie sie auf den Boden fällt*
:eek:

Öhm, sorry.
Glaskugel kaputt.
Was funktioniert den genau nicht?
Fehlermeldungen?
 
jgh

jgh

Top Contributor
meine Glaskugel ist nicht runtergefallen :D

aber wie soll das funktionieren...oder wie kann das funktieren, wenn deine Methode generiereStrichcode(Graphics g) nie aufgerufen wird???!!!
 
Sonecc

Sonecc

Gesperrter Benutzer
Spielverderber -.-
Wie soll man den leuten denn da beibringen, dass "Funktioniert nicht" keine ausreichende Fehlerbeschreibung ist...

Bin aber auch so ehrlich zu sagen, dass ich mir den Code nicht angeschaut habe (warum auch, wenn ich nichmal ahnen kann, wonach ich suchen soll)
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Anzeige

Neue Themen


Oben