Open vad0sss opened 1 year ago
ok.let me try.
example :
package test;
import org.mini.apploader.GApplication;
import org.mini.gui.*;
import org.mini.gui.event.GActionListener;
import static org.mini.nanovg.Nanovg.*;
/**
* @author gust
*/
public class MyApp1 extends GApplication {
GForm form;
@Override
public GForm getForm() {
if (form != null) {
return form;
}
form = new GForm(null);
GFrame cframe = new GFrame(form, "drawRegion", 0, 0, 500, 300);
cframe.getView().add(new GCanvas(form, 0, 0, cframe.getView().getW(), cframe.getView().getH()) {
GImage gimg = GImage.createImageFromJar("/res/test.png");
public void paint(GGraphics g) {
g.setClip(0, 0, this.getWidth(), this.getHeight());
int imgw = gimg.getWidth();
int imgh = gimg.getHeight();
int gx = 120, gy = 120, fw = imgw / 2, fh = imgh / 2;
g.drawRegion(gimg, fw, fh, fw, fh, GGraphics.TRANS_MIRROR_ROT90, gx, gy, GGraphics.HCENTER | GGraphics.VCENTER);
g.setColor(0xffff00ff);
g.drawRect(gx - 2, gy - 2, 5, 5);
int dx = (int) (this.getW() - 100), dy = 0;
g.drawImage(gimg, dx, dy, imgw, imgh, GGraphics.LEFT | GGraphics.TOP);
}
});
cframe.setFront(true);
cframe.setClosable(false);
cframe.align(NVG_ALIGN_CENTER | NVG_ALIGN_MIDDLE);
form.add(cframe);
GButton bt = new GButton(form, "exit", 0, 0, 100, 20);
form.add(bt);
bt.setActionListener(new GActionListener() {
@Override
public void action(GObject gObject) {
closeApp();
}
});
return form;
}
}
I'm trying to display the inscription test on the canvas, but something doesn't work for me
May you put your code in your github repo? GViewPort is a scalable containner, so you need not add canvas in a viewport, you can add a GPanel instead. this.mCanvas = new Game(form, 0, 0, 1, 1); is too small , try to new Game(form, 0, 0, 300, 300)
@digitalgust https://github.com/vad0sss/javaClient
An issue in canvas that setclip is wrong. fix and submited. Note that you setColor is ARGB data, but not j2me RGB
Thanks, setclip solved the problem
Graphics is not full j2me implementation , if there are any problem or request please let me know.
hi, can you add j2me's Font class analog or android's Paint class analog?
add GFont already
error: build lib\minijvm_rt.jar Удален файл - C:\Users\vadim\Desktop\miniJVM-master\binary\lib\minijvm_rt.jar C:\Users\vadim\Desktop\miniJVM-master\minijvm\java\src\main\java\java\text\SimpleDateFormat.java:35: error: cannot find symbol DontCareFieldPosition.INSTANCE).toString(); ^ symbol: variable DontCareFieldPosition location: class SimpleDateFormat Note: Some input files use unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 1 error ..\minijvm\java\src\main\resource\sys.properties Скопировано файлов: 1. Удален файл - C:\Users\vadim\Desktop\miniJVM-master\binary\source.txt Перемещено файлов: 1. completed.
fixed the SimpleDateFormat.java
@digitalgust Hello, I did the assembly according to the instructions and everything went without errors. but binary/lib/minijvm_rt.jar file doesn't work. If you replace it from the previous assembly, then it works. you can send me a link to download it, or the entire project. Thank you
May be the build_jar script can't work on other jdk?
I have Java SE Development Kit 8u351.
Here are some errors during compilation.
Build MOBILE jars Подпапка или файл ..\mobile\assets уже существует. Подпапка или файл ..\mobile\assets\resfiles уже существует. build assets\resfiles\minijvm_rt.jar Не удается найти C:\Users\vadim\Desktop\miniJVM-master\mobile\assets\resfiles\minijvm_rt.jar Note: Some input files use unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. ..\minijvm\java\src\main\resource\sys.properties Скопировано файлов: 1. Удален файл - C:\Users\vadim\Desktop\miniJVM-master\binary\source.txt Перемещено файлов: 1. build assets\resfiles\glfm_gui.jar Не удается найти C:\Users\vadim\Desktop\miniJVM-master\mobile\assets\resfiles\glfm_gui.jar C:\Users\vadim\Desktop\miniJVM-master\mobile\java\glfm_gui\src\main\java\org\mini\glwrap\GLutil.java:21: error: class GLUtil is public, should be declared in a file named GLUtil.java public class GLUtil { ^ Note: Some input files use unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 1 error ..\mobile\java\glfm_gui\src\main\resource\res\appmgr.png ..\mobile\java\glfm_gui\src\main\resource\res\entypo.ttf ..\mobile\java\glfm_gui\src\main\resource\res\NotoEmoji+NotoSansCJKSC-Regular.ttf ..\mobile\java\glfm_gui\src\main\resource\res\ui\AppManager.xml ..\mobile\java\glfm_gui\src\main\resource\res\ui\blue.png ..\mobile\java\glfm_gui\src\main\resource\res\ui\green.png ..\mobile\java\glfm_gui\src\main\resource\res\ui\home.png ..\mobile\java\glfm_gui\src\main\resource\res\ui\red.png ..\mobile\java\glfm_gui\src\main\resource\res\ui\yellow.png Скопировано файлов: 9. Удален файл - C:\Users\vadim\Desktop\miniJVM-master\binary\source.txt Перемещено файлов: 1. build assets\resfiles\ExApp.jar Не удается найти C:\Users\vadim\Desktop\miniJVM-master\mobile\assets\resfiles\ExApp.jar C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:3: error: package org.mini.apploader does not exist import org.mini.apploader.GApplication; ^ C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:4: error: package org.mini.gui does not exist import org.mini.gui.*; ^ C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:5: error: package org.mini.layout does not exist import org.mini.layout.UITemplate; ^ C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:6: error: package org.mini.layout does not exist import org.mini.layout.XContainer; ^ C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:7: error: package org.mini.layout does not exist import org.mini.layout.XEventHandler; ^ C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:8: error: package org.mini.layout does not exist import org.mini.layout.XmlExtAssist; ^ C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:9: error: package org.mini.nanovg does not exist import org.mini.nanovg.Nanovg; ^ C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:16: error: cannot find symbol public class MyApp extends GApplication { ^ symbol: class GApplication C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:18: error: cannot find symbol GForm form; ^ symbol: class GForm location: class MyApp C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:19: error: cannot find symbol GMenu menu; ^ symbol: class GMenu location: class MyApp C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:20: error: cannot find symbol GFrame gframe; ^ symbol: class GFrame location: class MyApp C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:23: error: cannot find symbol public GForm getForm() { ^ symbol: class GForm location: class MyApp C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\ExScriptLib.java:3: error: package org.mini.gui.gscript does not exist import org.mini.gui.gscript.DataType; ^ C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\ExScriptLib.java:4: error: package org.mini.gui.gscript does not exist import org.mini.gui.gscript.Interpreter; ^ C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\ExScriptLib.java:5: error: package org.mini.gui.gscript does not exist import org.mini.gui.gscript.Lib; ^ C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\ExScriptLib.java:9: error: cannot find symbol public class ExScriptLib extends Lib { ^ symbol: class Lib C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\ExScriptLib.java:16: error: cannot find symbol public DataType call(Interpreter inp, ArrayList<DataType> para, int methodID) { ^ symbol: class Interpreter location: class ExScriptLib C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\ExScriptLib.java:16: error: cannot find symbol public DataType call(Interpreter inp, ArrayList<DataType> para, int methodID) { ^ symbol: class DataType location: class ExScriptLib C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\ExScriptLib.java:16: error: cannot find symbol public DataType call(Interpreter inp, ArrayList<DataType> para, int methodID) { ^ symbol: class DataType location: class ExScriptLib C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\ExScriptLib.java:26: error: cannot find symbol public DataType func1(ArrayList<DataType> para) { ^ symbol: class DataType location: class ExScriptLib C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\ExScriptLib.java:26: error: cannot find symbol public DataType func1(ArrayList<DataType> para) { ^ symbol: class DataType location: class ExScriptLib C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\ExScriptLib.java:34: error: cannot find symbol public DataType func2(ArrayList<DataType> para) { ^ symbol: class DataType location: class ExScriptLib C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\ExScriptLib.java:34: error: cannot find symbol public DataType func2(ArrayList<DataType> para) { ^ symbol: class DataType location: class ExScriptLib C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\GCustomList.java:3: error: package org.mini.gui does not exist import org.mini.gui.GForm; ^ C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\GCustomList.java:4: error: package org.mini.gui does not exist import org.mini.gui.GList; ^ C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\GCustomList.java:6: error: cannot find symbol public class GCustomList extends GList { ^ symbol: class GList C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\GCustomList.java:8: error: cannot find symbol public GCustomList(GForm form, float left, float top, float width, float height) { ^ symbol: class GForm location: class GCustomList C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\XCustomList.java:3: error: package org.mini.gui does not exist import org.mini.gui.GObject; ^ C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\XCustomList.java:4: error: package org.mini.layout does not exist import org.mini.layout.XContainer; ^ C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\XCustomList.java:5: error: package org.mini.layout does not exist import org.mini.layout.XList; ^ C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\XCustomList.java:7: error: cannot find symbol public class XCustomList extends XList { ^ symbol: class XList C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\XCustomList.java:11: error: cannot find symbol public XCustomList(XContainer xc) { ^ symbol: class XContainer location: class XCustomList C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\XCustomList.java:21: error: cannot find symbol protected GObject createGuiImpl() { ^ symbol: class GObject location: class XCustomList C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:22: error: method does not override or implement a method from a supertype @Override ^ C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:28: error: cannot find symbol GLanguage.setCurLang(GLanguage.ID_CHN); ^ symbol: variable GLanguage location: class MyApp C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:28: error: cannot find symbol GLanguage.setCurLang(GLanguage.ID_CHN); ^ symbol: variable GLanguage location: class MyApp C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:31: error: cannot find symbol String xmlStr = GToolkit.readFileFromJarAsString("/res/MyForm.xml", "utf-8"); ^ symbol: variable GToolkit location: class MyApp C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:33: error: cannot find symbol UITemplate uit = new UITemplate(xmlStr); ^ symbol: class UITemplate location: class MyApp C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:33: error: cannot find symbol UITemplate uit = new UITemplate(xmlStr); ^ symbol: class UITemplate location: class MyApp C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:34: error: cannot find symbol UITemplate.getVarMap().put("Cancel", "CANCEL"); //replace keywork in xml ^ symbol: variable UITemplate location: class MyApp C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:35: error: cannot find symbol UITemplate.getVarMap().put("Change", "Change"); ^ symbol: variable UITemplate location: class MyApp C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:36: error: cannot find symbol UITemplate.getVarMap().put("Test", "Test"); ^ symbol: variable UITemplate location: class MyApp C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:37: error: cannot find symbol UITemplate.getVarMap().put("Exit", "QUIT"); ^ symbol: variable UITemplate location: class MyApp C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:38: error: cannot find symbol XContainer xc = (XContainer) XContainer.parseXml(uit.parse(), new XmlExtAssist(null)); ^ symbol: class XContainer location: class MyApp C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:38: error: cannot find symbol XContainer xc = (XContainer) XContainer.parseXml(uit.parse(), new XmlExtAssist(null)); ^ symbol: class XContainer location: class MyApp C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:38: error: cannot find symbol XContainer xc = (XContainer) XContainer.parseXml(uit.parse(), new XmlExtAssist(null)); ^ symbol: class XmlExtAssist location: class MyApp C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:38: error: cannot find symbol XContainer xc = (XContainer) XContainer.parseXml(uit.parse(), new XmlExtAssist(null)); ^ symbol: variable XContainer location: class MyApp C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:39: error: cannot find symbol int screenW = GCallBack.getInstance().getDeviceWidth(); ^ symbol: variable GCallBack location: class MyApp C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:40: error: cannot find symbol int screenH = GCallBack.getInstance().getDeviceHeight(); ^ symbol: variable GCallBack location: class MyApp C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:43: error: cannot find symbol xc.build(screenW, screenH, new XEventHandler() { ^ symbol: class XEventHandler location: class MyApp C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:84: error: cannot find symbol if (gframe != null) gframe.align(Nanovg.NVG_ALIGN_CENTER | Nanovg.NVG_ALIGN_MIDDLE); ^ symbol: variable Nanovg location: class MyApp C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:84: error: cannot find symbol if (gframe != null) gframe.align(Nanovg.NVG_ALIGN_CENTER | Nanovg.NVG_ALIGN_MIDDLE); ^ symbol: variable Nanovg location: class MyApp C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:85: error: cannot find symbol menu = (GMenu) form.findByName("MENU_MAIN"); ^ symbol: class GMenu location: class MyApp C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:92: error: cannot find symbol gframe.align(Nanovg.NVG_ALIGN_CENTER | Nanovg.NVG_ALIGN_MIDDLE); ^ symbol: variable Nanovg location: class MyApp C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\MyApp.java:92: error: cannot find symbol gframe.align(Nanovg.NVG_ALIGN_CENTER | Nanovg.NVG_ALIGN_MIDDLE); ^ symbol: variable Nanovg location: class MyApp C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\ExScriptLib.java:12: error: cannot find symbol methodNames.put("func1".toLowerCase(), 0);// ^ symbol: variable methodNames location: class ExScriptLib C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\ExScriptLib.java:13: error: cannot find symbol methodNames.put("func2".toLowerCase(), 1);// ^ symbol: variable methodNames location: class ExScriptLib C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\ExScriptLib.java:27: error: cannot find symbol String str1 = Interpreter.popBackStr(para); ^ symbol: variable Interpreter location: class ExScriptLib C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\ExScriptLib.java:28: error: cannot find symbol String str2 = Interpreter.popBackStr(para); ^ symbol: variable Interpreter location: class ExScriptLib C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\ExScriptLib.java:35: error: cannot find symbol int a = Interpreter.popBackInt(para); ^ symbol: variable Interpreter location: class ExScriptLib C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\ExScriptLib.java:36: error: cannot find symbol int b = Interpreter.popBackInt(para); ^ symbol: variable Interpreter location: class ExScriptLib C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\ExScriptLib.java:37: error: cannot find symbol return Interpreter.getCachedInt(a + b); ^ symbol: variable Interpreter location: class ExScriptLib C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\XCustomList.java:15: error: method does not override or implement a method from a supertype @Override ^ C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\XCustomList.java:22: error: cannot find symbol return new GCustomList(getAssist().getForm(), x, y, width, height); ^ symbol: method getAssist() location: class XCustomList C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\XCustomList.java:22: error: cannot find symbol return new GCustomList(getAssist().getForm(), x, y, width, height); ^ symbol: variable x location: class XCustomList C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\XCustomList.java:22: error: cannot find symbol return new GCustomList(getAssist().getForm(), x, y, width, height); ^ symbol: variable y location: class XCustomList C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\XCustomList.java:22: error: cannot find symbol return new GCustomList(getAssist().getForm(), x, y, width, height); ^ symbol: variable width location: class XCustomList C:\Users\vadim\Desktop\miniJVM-master\mobile\java\ExApp\src\main\java\test\ext\XCustomList.java:22: error: cannot find symbol return new GCustomList(getAssist().getForm(), x, y, width, height); ^ symbol: variable height location: class XCustomList 68 errors ..\mobile\java\ExApp\src\main\resource\config.txt ..\mobile\java\ExApp\src\main\resource\res\appmgr.png ..\mobile\java\ExApp\src\main\resource\res\Frame1.xml ..\mobile\java\ExApp\src\main\resource\res\hello.png ..\mobile\java\ExApp\src\main\resource\res\MyForm.xml Скопировано файлов: 5. Удален файл - C:\Users\vadim\Desktop\miniJVM-master\binary\source.txt Перемещено файлов: 1. completed.
If I run build_jar.bat jdk11 I get an error: error: option --boot-class-path not allowed with target 11
i see. the file GLutil.java is an invalid filename , it should be GLUtil.java , so glfm_gui.jar dose not built, that's it .i will fixed it .
I renamed GLUtil.java Ran build_jar.bat and build_winx64.bat everything built without error. When running test.bat got this: image https://ru.files.fm/u/73syxrmyp
Ok, I've fixed it on windows platform , It's a bug that load a class file from jar with '\' seaparator, it isn't a valid path string.
Great, problem solved. Thank you.
Hello, can you add drawRegion from the old j2me platform?