J2ME - int ausgeben

d2wap

Erfahrenes Mitglied
Hallo.
Ich mache gerad emit J2ME meine ersten GEhversuche. Mit Java allgemein.

Hab ein kleines Tool gebastelt, dass von 40 mit bestimmten Tasten hoch oder runterzählen soll.
Das ganze funktioniert theoretisch gut..
bis auf die Ausgabe der Zahl ;)

Ich möchte die Zahl gerne in der Mitte des Displays ausgeben.. doch mti write() oder g.drawInt komm ich nicht weit..
Zwar klappt die Ausgabe in der system.out... aber das muss auf das Display... kann mir jemand weiter helfen?
Danke.

Anbei mal der kleine Quelltext:

Code:
 import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class llevent extends MIDlet {
Display display;
Command exit;

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

public void destroyApp(boolean unconditional) {
}

public void pauseApp() {
System.out.println("App paused.");
}

public void startApp() {
display = Display.getDisplay(this);

Canvas canvas = new Canvas() {

private String message = "Press any key";
private int x1 = (getWidth()/2);
private int y1 = (getHeight()/2);
private int lebenspunkte = 40;



public void paint(Graphics g)
{


g.setColor( 0, 0, 0 );
g.fillRect( 0, 0, getWidth(), getHeight() );
 g.setColor(0,0,0); //Schriftfarbe "schwatz"
g.fillRect(0,0,getWidth(), getHeight()); //"zeichne Rechteck"
g.setColor(255,255,255); //Schriftfarbe "weiß"
//setzen der Attribute
  g.setColor(217,24,19); 
g.setFont(Font.getFont(Font.FACE_MONOSPACE, Font.STYLE_BOLD,Font.SIZE_LARGE));
g.drawString("MAGIC - The Gathering", 0,5,0 ); //Ausgabe der Schrift

   g.setColor(153,16,13);"
g.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN,Font.SIZE_SMALL));
g.drawString("LifePoint Counter", 0,26,0 ); //Ausgabe der Schrift

 g.setColor(255,255,255); 
g.drawString( message, getWidth()/2, 0,g.TOP | g.HCENTER ); //Ausgabe

g.setColor(37,34,34); 
g.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN,Font.SIZE_SMALL));
g.drawString("by d2wap", 0,100,0 ); 
//g.drawLine(x1,y1-5,x1,y1+5); //Fadenkreutz vertikal
//g.drawLine(x1-5,y1,x1+5,y1); //Fadenkreutz horizontal

  g.setColor(192,192,192); //Schriftfarbe "schwatz"
g.setFont(Font.getFont(Font.FACE_MONOSPACE, Font.STYLE_BOLD,Font.SIZE_LARGE));
out.write(lebenspunkte, 10,33,0 ); //Ausgabe der Schrift


}

protected void keyPressed( int keyCode ){
if( keyCode == getKeyCode( LEFT ) ){
message = "LEFT"; lebenspunkte--;
} else if( keyCode ==getKeyCode( RIGHT ) ){
message = "RIGHT"; lebenspunkte++;
} else if( keyCode == getKeyCode( UP ) ){
message = "UP";  lebenspunkte++;
} else if( keyCode == getKeyCode( DOWN ) ){
message = "DOWN";lebenspunkte--;
}

System.out.println(lebenspunkte);
repaint();
}


};

exit = new Command("Exit", Command.STOP,1);
canvas.addCommand(exit);
canvas.setCommandListener(new CommandListener() {
public void commandAction(Command c, Displayable d) {
if(c == exit) {
notifyDestroyed();
}
else {
System.out.println("Saw the command: "+c);
}
}
});
display.setCurrent(canvas);
}
}
 
Konnte mein Problem selbst lösen und nun auch etwas erweitern.

Nur leider ist der "Counter" der von 40 hoch oder runter zählt etwas "klein"...
weiß jemand, wie ich den noch größer bekomme, als mit den von mir gesetzten Schriftattributen?



Code:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class MagicLifePointer extends MIDlet {
Display display;
Command exit;

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

public void destroyApp(boolean unconditional) {
}

public void pauseApp() {
System.out.println("App paused.");
}

public void startApp() {
display = Display.getDisplay(this);

Canvas canvas = new Canvas() {

private String message = "";
private int x1 = (getWidth()/2);
private int y1 = (getHeight()/2);
private int lebenspunkte = 40;
private String s1 = String.valueOf( lebenspunkte );


public void paint(Graphics g)
{


g.setColor( 0, 0, 0 );
g.fillRect( 0, 0, getWidth(), getHeight() );
 g.setColor(0,0,0); //Schriftfarbe "schwatz"
g.fillRect(0,0,getWidth(), getHeight()); //"zeichne Rechteck"
g.setColor(255,255,255); //Schriftfarbe "weiß"
//setzen der Attribute
  g.setColor(217,24,19); 
g.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD,Font.SIZE_MEDIUM));
g.drawString("MAGIC LPC", getWidth()/2, 5,g.TOP | g.HCENTER ); //Ausgabe der Schrift

   g.setColor(153,16,13);
g.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD,Font.SIZE_LARGE));
g.drawString("LifePointCounter", getWidth()/2, 26,g.TOP | g.HCENTER  ); //Ausgabe der Schrift

g.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN,Font.SIZE_MEDIUM));
 g.setColor(255,255,255); 
g.drawString( message, getWidth()/2, 90,g.TOP | g.HCENTER ); //Ausgabe


g.setColor(37,34,34); 
g.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN,Font.SIZE_SMALL));
g.drawString("by d2wap", 0,170,0 ); 
//g.drawLine(x1,y1-5,x1,y1+5); //Fadenkreutz vertikal
//g.drawLine(x1-5,y1,x1+5,y1); //Fadenkreutz horizontal
s1 = String.valueOf( lebenspunkte );
  g.setColor(192,192,192); //Schriftfarbe "schwatz"
g.setFont(Font.getFont(Font.FACE_MONOSPACE, Font.STYLE_BOLD,Font.SIZE_LARGE));
g.drawString(s1, getWidth()/2, 70,g.TOP | g.HCENTER ); 

}

protected void keyPressed( int keyCode ){
if( keyCode == getKeyCode( LEFT ) ){
lebenspunkte--;message = "";
} else if( keyCode ==getKeyCode( RIGHT ) ){
lebenspunkte++;message = "";
} else if( keyCode == getKeyCode( UP ) ){
lebenspunkte++;message = "";
} else if( keyCode == getKeyCode( DOWN ) ){
lebenspunkte--;message = "";
} else if( keyCode == getKeyCode( FIRE ) ){
message = "Reset";lebenspunkte = 40;
} else {
message = "";
}
 
repaint();
}


};

exit = new Command("Exit", Command.STOP,1);
canvas.addCommand(exit);
canvas.setCommandListener(new CommandListener() {
public void commandAction(Command c, Displayable d) {
if(c == exit) {
notifyDestroyed();
}
else {
System.out.println("Saw the command: "+c);
}
}
});
display.setCurrent(canvas);
}
}
 
Zurück