# Mein Applet brauch ewig lange zum laden.



## raven (23. Aug 2004)

Mein Applet brauch ewig lange zum laden.
Nur weil ich eine String aus einem Label in eine Integer umwandle.

Ich habe das dazu genommen.



```
int t1 = Integer.parseInt(s1);
int t2 = Integer.parseInt(s2);
int t3 = Integer.parseInt(s3);
```

sobald ich das auskommentiere gehts wieder normal.

Könnt ihr mir sagen ob diese Varante die ich verwendet habe ok ist.
Oder ob ihr eine bessere/schnellere Variante habt.
Oder ihr wiesst woran das liegt das das so lange zum laden brauch.

Ich habe keine Bilder gebraucht also an das liegtst nicht[/code]


----------



## L-ectron-X (23. Aug 2004)

Das ist die richtige Methode, um aus Strings int's zu machen.
Kann ich das Applets mal sehen? Vielleicht fällt mir ja was anderes auf.


----------



## raven (23. Aug 2004)

Hier ises


```
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;

public class textfelder extends Applet implements Runnable, ActionListener
{
	Thread t;
	boolean bWeiter=true;

	TextField textfeld1;
	TextField textfeld2;
	TextField textfeld3;
	Button OK;

	int a=0;
	int b=0;
	int c=0;
	String s1;
	String s2;
	String s3;

	int t1 = Integer.parseInt(s1);
	int t2 = Integer.parseInt(s2);
	int t3 = Integer.parseInt(s3);

	private Image dbImage;
	private Graphics dbGraphics;
	Image img;

	public void init ()
	{
		setLayout(null);
		textfeld1 = new TextField("100", 30);
		textfeld1.setBounds(5,5,100,30);
		add(textfeld1);

		textfeld2 = new TextField("100", 30);
		textfeld2.setBounds(5,40,100,30);
		add(textfeld2);

		textfeld3 = new TextField("100", 30);
		textfeld3.setBounds(5,75,100,30);
		add(textfeld3);

		OK = new Button("Farbe erstellen");
		OK.setBounds(130,70,200,30);
		OK.addActionListener(this);
		add(OK);
	}
	public void start()
	{
		t = new Thread(this);
		t.start();
	}
	public void stopp()
	{
		bWeiter=false;
	}
	public void run()	
	{
		while (bWeiter)
		{
			try { t.sleep(1);}
			catch (Exception e) { }
			repaint();
		}
	}
	public void update(Graphics g)
	{
		if (dbImage == null)
		{
			dbImage = createImage(getSize().width,getSize().height);
			dbGraphics = dbImage.getGraphics();
		}
		// hintergrund l?schen
		dbGraphics.setColor(getBackground());
		dbGraphics.fillRect(0,0,getSize().width,getSize().height);
		// Vordergrund zeichnen
		dbGraphics.setColor(getForeground());
		paint(dbGraphics);
		//Offscreen anzeigen
		g.drawImage(dbImage,0,0,this);
	}
	public void paint (Graphics g)
	{
		g.setColor(new Color(a,b,c));
		g.fillRect(130,10,200,50);

		g.drawString("S1: "+ s1 +" S2: "+ s2 +" S3: "+ s3,5,10);
	//	g.drawString("S1: "+ t1 +" S2: "+ t2 +" S3: "+ t3,5,30);
	}
	public void actionPerformed(ActionEvent e)
	{
		s1 = textfeld1.getText();
		s2 = textfeld2.getText();
		s3 = textfeld3.getText();
	}
}
```


----------



## Beni (23. Aug 2004)

Wenn das Ding startet, gibts eine NullPointerException, die sorgt wohl für das elend lange laden (dass das überhaupt startet, wundert mich schon).

Denn hier _int t1 = Integer.parseInt(s1);_ (in Zeile 23) übergibst du dem parseInt eine null-Referenz (du hast dem s1 noch nichts zugewiesen).

Die Umwandlung von String zu Integer machst du besser dann, wenn der Ok-Button gedrückt wurde:


```
public void actionPerformed(ActionEvent e) {
		s1 = textfeld1.getText();
		s2 = textfeld2.getText();
		s3 = textfeld3.getText();
		
		a = Integer.parseInt(s1);
		b = Integer.parseInt(s2);
		c = Integer.parseInt(s3);
	}
```


----------



## L-ectron-X (23. Aug 2004)

Und wenn Du die stop()-Methode von Applet überschreiben willst, dann nur mit einem "p". :wink:


----------



## raven (23. Aug 2004)

gut danke dauert jetzt nicht mehr so lange


----------

