[J2ME] Graphics2D.getDeviceConfiguration() probleem

Pagina: 1
Acties:

  • schoolvoorbeeld
  • Registratie: Oktober 2005
  • Laatst online: 04-10-2024
Hallo,

Ik ben bezig om met de J2ME CDC Personal Profile een scherm te maken waar op getekend kan worden. Deze tekening moet vervolgens opgeslagen worden als BMP. Tijdens het testen op mijn PC werkt alles gewoon, maar als ik de software op mijn PDA zet krijg ik een error. Ik maak een class die Canvas extends. De paint methode ziet er als volgt uit:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Graphics2D g2Img; //Graphics2D context for the picture
BufferedImage img;
 
public void paint(Graphics g){
    Graphics2D g2 = (Graphics2D) g; //Graphics2D context in which the image will be shown
                
    if(firstPaint){
        GraphicsConfiguration graphConf = g2.getDeviceConfiguration();
        img = graphConf.createCompatibleImage(200, 200);
        g2Img = (Graphics2D) img.createGraphics();
        firstPaint = false;
    }
 
    g2.drawImage(img, 0, 0, getBackground(), this);
}

Het gaat fout bij:
Java:
1
GraphicsConfiguration graphConf = g2.getDeviceConfiguration();
Ik geen GraphicsConfiguration terug maar een null reference. Bij mijn weten is er geen andere manier om een BufferedImage aan te maken dan via 'createCompatibleImage()' van GraphicsConfiguration, want bij PP is er geen constructor voor de BufferedImage.

Ik gebruik IBM's J9 op een PocketPC met windows 2003. Ik compile met JDK 1.3.1_16. Het testen op de PC (wat dus wel werkt) gebeurt met JRE5.0 (maar wel gewoon gecompiled met 1.3).

Ziet iemand wat ik fout doe, of heeft iemand een manier waarmee ik dit probleem kan omzeilen? Alvast bedankt.

  • LAN
  • Registratie: Oktober 2000
  • Niet online

LAN

Ik weet niet hoe het met de KVM van de PocketPC zit, maar bij mijn weten heeft MIDP1.0 of MIDP2.0 geen Graphics2D klasse.

Compileren met een Jdk voor de desktop kan er inderdaad voor zorgen dat het op je desktop wel werkt. Maar op een mobiel apparaat heb je geen volledige Jdk, maar een subversie daarvan.

Voor compileren voor een mobile device heb je andere klassen nodig o.a. cldc1.0 met daarbij midp2.0 en evt optional packages.

edit:
ik lees net dat je een cdc apparaat gebruikt ipv cldc, daar heb ik geen kennis van, dus neem me niet kwalijk als mijn post je niet verder helpt.

[ Voor 16% gewijzigd door LAN op 02-11-2005 18:36 ]


  • schoolvoorbeeld
  • Registratie: Oktober 2005
  • Laatst online: 04-10-2024
Is opgelost
Java:
1
GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration()

werkt wel. Maar als iemand weet waarom Graphics2D.getDeviceConfiguration() niet werkt hoor ik het graag.