Java 使用代码名One共享表单或容器

Java 使用代码名One共享表单或容器,java,share,codenameone,Java,Share,Codenameone,我想在CN1上分享我的应用程序屏幕,想法是创建一个屏幕,作为JPG和分享它 从其他帖子我有这个代码 @Override protected void onGpsTracker_Button1Action(Component c, ActionEvent event) { String file="toShare.jpeg"; String path=""; Image i= Image.createImage(c.getComponentForm().getWidth(),c

我想在CN1上分享我的应用程序屏幕,想法是创建一个屏幕,作为JPG和分享它

从其他帖子我有这个代码

 @Override
protected void onGpsTracker_Button1Action(Component c, ActionEvent event) {

  String file="toShare.jpeg";
  String path="";
    Image i= Image.createImage(c.getComponentForm().getWidth(),c.getComponentForm().getHeight());
  c.paintComponent(i.getGraphics());
  OutputStream save;
    try {
        save = Storage.getInstance().createOutputStream(file);
        ImageIO.getImageIO().save(i, save, ImageIO.FORMAT_JPEG,(float) 0.90f);
    } catch (IOException ex) {
        ex.printStackTrace();
    }
          String [] entries= Storage.getInstance().listEntries();
   for( int k=0;k< entries.length;k++){

      if (entries[k].startsWith("toShare")){
        path=(String)Storage.getInstance().readObject(entries[k]);}}
   findShareSec().setImageToShare(path, "image/jpeg"); 


}
因此图像不会被保存。 图像保存后,我如何共享它?? 在Android Studio上,我使用shareIntent,并在周末之前刚刚添加的每个应用程序上共享

Form hi = new Form("ShareButton");
ShareButton sb = new ShareButton();
sb.setText("Share Screenshot");
hi.add(sb);

Image screenshot = Image.createImage(hi.getWidth(), hi.getHeight());
hi.revalidate();
hi.setVisible(true);
hi.paintComponent(screenshot.getGraphics(), true);

String imageFile = FileSystemStorage.getInstance().getAppHomePath() + "screenshot.png";
try(OutputStream os = FileSystemStorage.getInstance().openOutputStream(imageFile)) {
    ImageIO.getImageIO().save(screenshot, os, ImageIO.FORMAT_PNG, 1);
} catch(IOException err) {
    Log.e(err);
}
sb.setImageToShare(imageFile, "image/png");
以下是上述代码的Java 5版本:

Form hi = new Form("ShareButton");
ShareButton sb = new ShareButton();
sb.setText("Share Screenshot");
hi.add(sb);

Image screenshot = Image.createImage(hi.getWidth(), hi.getHeight());
hi.revalidate();
hi.setVisible(true);
hi.paintComponent(screenshot.getGraphics(), true);

String imageFile = FileSystemStorage.getInstance().getAppHomePath() + "screenshot.png";
try {
    OutputStream os = FileSystemStorage.getInstance().openOutputStream(imageFile);
    ImageIO.getImageIO().save(screenshot, os, ImageIO.FORMAT_PNG, 1);
    Util.cleanup(os);
} catch(IOException err) {
    Log.e(err);
}

我收到此消息错误:在-source 1.5 try(OutputStream os=FileSystemStorage.getInstance().openOutputStream(imageFile)){(使用-source 7或更高版本启用try with resources)中不支持try with resources如果您有一个较旧的Java 5项目,则需要对其进行修改,使其使用Java 8语法,否则生成将在本地和生成服务器中失败。我编辑了上面的代码以使用标准Java 5代码。您可以按照以下说明迁移到新的Java 8语法:
Form hi = new Form("ShareButton");
ShareButton sb = new ShareButton();
sb.setText("Share Screenshot");
hi.add(sb);

Image screenshot = Image.createImage(hi.getWidth(), hi.getHeight());
hi.revalidate();
hi.setVisible(true);
hi.paintComponent(screenshot.getGraphics(), true);

String imageFile = FileSystemStorage.getInstance().getAppHomePath() + "screenshot.png";
try {
    OutputStream os = FileSystemStorage.getInstance().openOutputStream(imageFile);
    ImageIO.getImageIO().save(screenshot, os, ImageIO.FORMAT_PNG, 1);
    Util.cleanup(os);
} catch(IOException err) {
    Log.e(err);
}