Я не думаю, что взлом необходим. Вы можете создать подкласс класса LWTUI Component, а затем вы можете рисовать все, что захотите, в графическом контексте компонента. Вы получаете не собственный объект lcdui.Graphics, а объект с тем же интерфейсом, который прост в использовании.
Если вам действительно нужно передать lcdui.Graphics в некоторую базовую библиотеку, чтобы отобразить ее вывод, я бы предложил:
Где-то в коде вашего компонента (делайте только тогда, когда содержание компонента действительно нужно изменить):
private Image buffer = null; // keep this
int[] bufferArray = new int[desiredWidth * desiredHeight];
javax.microedition.lcdui.Image bufferImage =
Image.createEmptyImage(desiredWidth, desiredHeight);
thirPartyComponent.paint(bufferImage.getGraphics());
bufferImage.getRGB(bufferArray,0,1,0,0,desiredWidth, desiredHeight);
bufferImage = null; //no longer needed
buffer = Image.createImage(bufferArray, desiredWidth, desiredHeight);
В компоненте краски (г) метод:
g.drawImage(0,0, buffer);
В результате взлома, который вы сделали, вы теряете переносимость, а также потому, что вы выставляете закрытый объект реализации, вы также можете нарушать другие вещи.
Надеюсь, это поможет.