Image Problem

Status
Nicht offen für weitere Antworten.

Siegfried

Mitglied
Hey.
Ich hab eine kleine Klasse ProgressBar geschrieben und sie funktioniert.
Das Problem ist nur die Bar wird immer wieder neugezeichnet, also es werden mehrere Images untereinander gezeichnet. Kann hier auch etwas wie \r (Wird ja bei Text also chars oder strings verwendet) oder so verwendet werden, damit das Image nicht immer wieder neugezeichnet wird sondern immer an der gleichen stelle??
Hier ist der Code :
Code:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.lang.*;

public class ProgressBar
{
   int isProgress = 0; // 133 ist der MaximalWert!
   Image PB = Image.createImage(135,5);
   Graphics Grafik = PB.getGraphics();

   public ProgressBar(Form f)
   { 
      Grafik.drawLine(0,0,135,0);
      Grafik.drawLine(135,0,135,5);
      Grafik.drawLine(135,5,0,5);
      Grafik.drawLine(0,5,0,0);
      Grafik.setColor(0x000000);
      Grafik.fillRect(1,1,134,4);
      Grafik.setColor(0x0088FF);
      Grafik.fillRect(1,1,isProgress,3);
      
      f.append(PB);

      for (int P=0; P <= 133; P++) 
      {
         isProgress = isProgress + 1;
         Grafik.setColor(0x0088FF);
         Grafik.fillRect(1,1,isProgress,3);
         f.append(PB);
      }
   }
}
Danke im Voraus :D.
Gruß, Siegfried :D.

Edit : Code verändert!
 

Backwardsman

Bekanntes Mitglied
naja, also wenn du dir deine funktion anschaust und dir mal die for-schleife ausgeschrieben vorstellst steht da ja so was wie:

form.append(grafik);
form.append(grafik);
form.append(grafik);
form.append(grafik);
...
form.append(grafik);
form.anzeigen();

erst nach dem die funktion fertig ist, wird dann dein Form angezeigt, klar also, dass da 134 bilder aneinander gehängt angezeigt werden.

was du machen musst ist, eine graf dranhängen, dann dafür sorgen, dass das form (mit einer grafik) angezeigt wird, nach einer gewissen zeit (also ein paar milisekunden) das Form komplett neu zusammenstellen (wieder mit einer grafik) und dann diese anzeigen, und diesen vorgang dann 133 mal wiederholen.

so ungefähr:

for ( i = 1 to 133) {
form = new Form(); //neues Form erstellen
form.append (getGrafik(i));
form.anzeigen();
Thread.sleep(x); // x ms warten
}
 

Siegfried

Mitglied
Also das versteh ich jetzt nicht.
Und vor allem Wieso Thread? Die Klasse leitet sich von Thread noch nicht einmal ab.
Ich hab den Code jetzt so verändert jetzt wird aber garnichts mehr gedrawt.
Code:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.lang.*;

public class ProgressBar
{
   int isProgress = 0; // 133 ist der MaximalWert!
   Image PB = Image.createImage(135,5);
   Graphics Grafik = PB.getGraphics();

   public ProgressBar(Form f)
   { 
      Grafik.drawLine(0,0,135,0);
      Grafik.drawLine(135,0,135,5);
      Grafik.drawLine(135,5,0,5);
      Grafik.drawLine(0,5,0,0);
      Grafik.setColor(0x000000);
      Grafik.fillRect(1,1,134,4);
      Grafik.setColor(0x0088FF);
      Grafik.fillRect(1,1,isProgress,3);
      
      f.append(PB);

      for (int P=0; P <= 133; P++) 
      {
         f = new Form("Prozess läuft...");
         isProgress = isProgress + 1;
         Grafik.setColor(0x0088FF);
         Grafik.fillRect(1,1,isProgress,3);
         f.append(PB);
      }
   }
}
 

Backwardsman

Bekanntes Mitglied
die Thread.sleep() funktion ist statisch, die bentutz man einfach nur um eine pause einzubauen, immerhin willst du den balken doch wachsen lassen oder? und ein wachsender balken besteht aus balken verschiedener länge die "schnell" übereinander gezeichnet werden... die schnelligkeit hängt dabei ab, wie lange du warstest bis der balken übermalt wird, deswegen die sleepfunktion... wenn du so was nicht einbaust, geht das alles so schnell dass du gar nicht sehen kannst, dass der balken gewachsen ist!

was hast du denn jetzt geändert??

ich glaube du hast dich total übernommen? bzw schon zu viel gecoded und jetzt weiß man nicht wo das problem überhaupt ist!

fang doch mal ganz klein an... schreib ein ganz einfaches midlet, welches einen ganz einfachen Form angzeigt, welcher alle paar sekunden über schrieben wird.
also z.b. als erstes zeigst du new Form("A"); an, dann 2 sekunden später soll new Form("B") angzeigt werden und wieder 2 sekunden später new Form("C")... wenn du das hinbekommen hast, kannst du in die forms die grafik einbetten etc.

... versuch dich erstmal an der grundfunktionalität, also das automatische anzeigen bzw. überschreiben von forms... wenn du das raushast ist der ladebalken ganz einfach!
 

Siegfried

Mitglied
Ja gut ich hab das mal gecodet.
Code:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.lang.*;

public class Test extends MIDlet
{
   Display display;
   Form f;   

   public Test()
   {
      display=Display.getDisplay(this);
   }

   protected void startApp()
   throws MIDletStateChangeException
   {
      display.setCurrent(f);
      f = new Form("A");
      Thread.sleep(5000);
      f = new Form("B");
      Thread.sleep(5000);
      f = new Form("C");
   }

   protected void pauseApp()
   {
   }

   protected void destroyApp(boolean unconditional)
   throws MIDletStateChangeException
   {
   }
}

Wenn das was du sagtst stimmt müsste es gehen doch der Compiler sagt folgendes.

Project settings saved
Building "TestPRJ"
C:\Programme\Java\WTK22\apps\TestPRJ\src\Test.java:20: unreported exception java.lang.InterruptedException; must be caught or declared to be thrown
Thread.sleep(5000);
^
C:\Programme\Java\WTK22\apps\TestPRJ\src\Test.java:22: unreported exception java.lang.InterruptedException; must be caught or declared to be thrown
Thread.sleep(5000);
^
2 errors
com.sun.kvem.ktools.ExecutionException
Build failed
 

MiMij

Bekanntes Mitglied
Mal abgesehen von der Fehlermeldung, du setzt am Anfang das Display auf f, dabei ist f noch null, dann machst du ne neue Form, wartest, machst noch ne neue Form, wartest. Aber du sagst dem nirgends das der die neue Form auch anzeigen soll?!
 

Backwardsman

Bekanntes Mitglied
zu deiner fehlermeldung sag ich nur:

lern' erstmal die java-grundlagen, bevor du mit j2me anfängst!!!

das klingt vielleicht hart, aber wenn man die grundlagen nicht kennt, sollte man nicht gleich mit j2me anfangen... und die kenntnis über exceptions und wie man sie fängt, gehört einfach zu den grundlagen!

mit was programmierst du überhaupt? ich kann dir nur zu eclipseME raten, eclipse hätte dich schon während dem entwickeln darauf hingewiesen, dass ein exception abgefangen werden muss ... aber das hat alles keinen sinn, wenn du nicht weißt, warum da ein fehler auftritt!!!

und wenn du dann mal so weit bist, dass du mit j2me anfangen kannst... dann starte mal mit einem helloworld-midlet... bau forms ein, wechsle zwischen forms etc. so dass du ein gefühl für die gui bekommst.... und wenn du das alles raushast, wirst du schon selbst merken, wie man einen ladebalken bastelt, aber im moment seh ich keine chance!
 

Siegfried

Mitglied
aha ja gut.
Momentan trag ich auch eh nur kenntnisse aus C++.
Aber wenn ich die J2Se mit der J2ME vergleiche seh ich ne menge unterschiede.
Ist ja auch egal.
Thx.
 

MiMij

Bekanntes Mitglied
@Siegfried
Naja aber die Grundkentnisse sollte man haben! Da die Fehlermeldungen in J2ME sehr verwirrend sein koennen, und keine Zeilenangaben enthalten im Gegensatz zu Java Se
 

ARadauer

Top Contributor
Code:
		try {
			Thread.sleep(5000);
		}catch (InterruptedException e) {}

verwendest du keine ide????
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Image dynamisch anhand von id in ImageView anpassen Android & Cross-Platform Mobile Apps 4
B Android ListView set custom check Image and delete Android & Cross-Platform Mobile Apps 0
D Grid Lists Image Gallery Android & Cross-Platform Mobile Apps 32
N Save Image to DB and set ImageView Android & Cross-Platform Mobile Apps 1
K Dynamische (Image)Buttons, Größe bestimmen Android & Cross-Platform Mobile Apps 4
M 20 Image Button für jede Auflösung positionieren Android & Cross-Platform Mobile Apps 3
D Java ME Image strecken und in beliebiger Gradzahl drehen Android & Cross-Platform Mobile Apps 3
J image j2me Android & Cross-Platform Mobile Apps 2
M ein image pixel für pixel aufbauen : setPixel() ? Android & Cross-Platform Mobile Apps 1
J Image reinladen funktioniert nicht. Android & Cross-Platform Mobile Apps 13
W MPAndroidChart Abhängikeit löst Gradle Problem aus Android & Cross-Platform Mobile Apps 0
W Prüfen, ob App auf Gerät installiert ist Problem S10 Android & Cross-Platform Mobile Apps 11
W In App Purchase Problem? Android & Cross-Platform Mobile Apps 36
W Problem mit Android Studio Android & Cross-Platform Mobile Apps 0
T Android R.string.test+i Problem Android & Cross-Platform Mobile Apps 2
K Android to Pi | Websocket Problem Android & Cross-Platform Mobile Apps 3
N Intent und finish() Problem Android & Cross-Platform Mobile Apps 5
B Android App Programmierung Einsteiger Problem Android & Cross-Platform Mobile Apps 4
emeraldo Android Problem mit Bottomnavmenu Android & Cross-Platform Mobile Apps 10
I Das Problem mit der Tastatur... android:windowSoftInputMode="adjustPan" Android & Cross-Platform Mobile Apps 1
M Android App → Problem mit dem Speichern von einem Bitmap–Objekt. Android & Cross-Platform Mobile Apps 1
A Android Android Studio Emulator Problem Android & Cross-Platform Mobile Apps 1
S Android Studio Bluetooth App Problem Android & Cross-Platform Mobile Apps 6
J TicTacToe Problem bei kontrolle Android & Cross-Platform Mobile Apps 7
J Button array ID Problem Android & Cross-Platform Mobile Apps 2
M Problem bei Werteübergabe, MSQL verbindung Android & Cross-Platform Mobile Apps 3
S Android Problem mit Android Virtual Device erstellung. Android & Cross-Platform Mobile Apps 2
Anfänger2011 Text to Speech Problem Android & Cross-Platform Mobile Apps 1
S Android Android java onclick listener Problem Android & Cross-Platform Mobile Apps 9
A Android Problem mit ListView und OnItemClickListener.. Android & Cross-Platform Mobile Apps 10
K Problem mit arraylist und button Android & Cross-Platform Mobile Apps 16
R W-Lan Problem über Sockets Android & Cross-Platform Mobile Apps 1
P ViewPager Problem Android & Cross-Platform Mobile Apps 1
A Android Problem mit Video von Youtube abspielen Android & Cross-Platform Mobile Apps 4
A Android Problem mit Zurücktaste und ausgabe der Aktuellen Seite Android & Cross-Platform Mobile Apps 6
B Android Problem mit Soundwiedergabe Android & Cross-Platform Mobile Apps 2
T Android Android Sensor: Java Problem Android & Cross-Platform Mobile Apps 1
G Problem beim Rendern von 3D-Objekt Android & Cross-Platform Mobile Apps 0
L Android Gyroscope Sensor Problem Android & Cross-Platform Mobile Apps 2
S Android GPS Problem Android & Cross-Platform Mobile Apps 24
J Eclipse Emulator Problem Android & Cross-Platform Mobile Apps 1
J Eclipse Emulator Problem Android & Cross-Platform Mobile Apps 0
B Android Problem mit Rückgabewert Android & Cross-Platform Mobile Apps 13
L Android komisches Bitmap-Größe-Problem Android & Cross-Platform Mobile Apps 8
D Android Layout Problem Android & Cross-Platform Mobile Apps 2
R Problem mit View in ScrollView Android & Cross-Platform Mobile Apps 6
R Eclipse + AndroidSDK - Problem mit Referenzen Android & Cross-Platform Mobile Apps 6
M Problem mit setOnClickListener Android & Cross-Platform Mobile Apps 4
DaniSahne96 Problem beim Appdebuggen auf Smartphone Android & Cross-Platform Mobile Apps 3
P Android Problem beim Widget - Denkfehler ? Android & Cross-Platform Mobile Apps 2
M GCM IntentService Problem Android & Cross-Platform Mobile Apps 3
D Android Gallery Problem Android & Cross-Platform Mobile Apps 5
P Problem mit Cell id Android & Cross-Platform Mobile Apps 6
L Android Problem mit "spinner" Android & Cross-Platform Mobile Apps 10
D Android problem mit geschwindigkeitsberechnung app Android & Cross-Platform Mobile Apps 2
E Android Problem mit Contact Provider Android & Cross-Platform Mobile Apps 1
H Android Problem mit ListActivity Android & Cross-Platform Mobile Apps 3
S Android Layout Problem mit fill_parent Android & Cross-Platform Mobile Apps 5
F Android ExpandableList, SimpleCursorTreeAdapter, Cursor Problem Android & Cross-Platform Mobile Apps 2
A Android Problem mit Long.getLong() bzw. Integer.getInteger() Android & Cross-Platform Mobile Apps 2
A Problem mit HTTP- Verbindung Android & Cross-Platform Mobile Apps 4
V [Java] und [JavaME] ClientServer StreamConnection . Problem beim lesen / schreiben Android & Cross-Platform Mobile Apps 2
F Eclipse JAD File erzeugen -- Problem Android & Cross-Platform Mobile Apps 10
R Ein Problem beim ausführen von folgendem Quelltext Android & Cross-Platform Mobile Apps 11
M Problem mit dem Auslesen von System Properties Android & Cross-Platform Mobile Apps 7
P wtk problem Android & Cross-Platform Mobile Apps 3
G Math exp() Problem Android & Cross-Platform Mobile Apps 4
G S40 Problem Android & Cross-Platform Mobile Apps 8
A Problem beim Subtrahieren eines Double von einem Double Android & Cross-Platform Mobile Apps 5
C Problem Device/Emulator wird nicht erkannt Android & Cross-Platform Mobile Apps 3
M Problem mit den Softkeys Android & Cross-Platform Mobile Apps 4
G J2ME jar-problem Android & Cross-Platform Mobile Apps 10
S Komisches Problem Android & Cross-Platform Mobile Apps 3
F Problem beim Erstellen der Jar File Android & Cross-Platform Mobile Apps 4
A Problem: Canvas-Grösse Motorola RAZR v3r Android & Cross-Platform Mobile Apps 8
S Problem mit Einbindung einer externer Bibliothek Android & Cross-Platform Mobile Apps 2
G Random - Problem Android & Cross-Platform Mobile Apps 5
E problem mit den resourcen Android & Cross-Platform Mobile Apps 2
O Problem mit Datagramconnection Android & Cross-Platform Mobile Apps 2
P Problem mit der Uhrzeit Android & Cross-Platform Mobile Apps 2
S Problem auf dem Handy Android & Cross-Platform Mobile Apps 3

Ähnliche Java Themen

Neue Themen


Oben