sclass ImageChooser extends SingleComponentPanel {
new ImageSurface is;
new JTextField tfPath;
*(BufferedImage img) {
this();
setImage(img);
}
*(RGBImage img) { this(img.getBufferedImage()); }
ifclass PNGFile
*(PNGFile png) { this(png == null ? null : png.getImage()); }
endif
*() {
bindToComponent(this, r { is.zoomToWindow() });
is.loadFromClipboard();
//setComponent(withLabel("Path to image or snippet ID:", tfPath));
setComponent(jMinSize(100, 100, jscroll(is)));
componentPopupMenu(is, voidfunc(JPopupMenu menu) {
addMenuItem(menu, "Screenshot in 3", r {
thread "Screenshot in 3" {
sleep(3000);
final BufferedImage img = shootScreen2();
awt {
is.setImage(img);
infoMessage("Screenshot taken (" + img.getWidth() + "*" + img.getHeight() + " px)", 2);
}
}
});
addMenuItem(menu, "Load snippet or file...", r {
final new JTextField tf;
showFormTitled("Load image from snippet or file",
"Path or snippet ID", tf,
r {
is.setImage(loadImage2(tf.getText().trim()));
is.zoomToDisplaySize();
});
});
});
}
bool hasImage() { ret is.getImage() != null && is.getImage().getWidth()*is.getImage().getHeight() > 1; }
BWImage getBWImage() { ret is.getImage() == null ? null : new BWImage(is.getImage()); }
BufferedImage getImage() { ret hasImage() ? is.getImage() : null; }
void setImage(BufferedImage img) { is.setImage(img); is.zoomToWindow(); }
ifclass PNGFile
PNGFile createPNGFile() { ret hasImage() ? new PNGFile(getImage()) : null; }
endif
void setTitleForUpload(S title) { is.titleForUpload = title; }
}download show line numbers debug dex old transpilations
Travelled to 13 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
| Snippet ID: | #1006063 |
| Snippet name: | ImageChooser |
| Eternal ID of this version: | #1006063/12 |
| Text MD5: | 7dbc51ed1bb79f9f17c5a2ddd44a5ef1 |
| Author: | stefan |
| Category: | javax / gui |
| Type: | JavaX fragment (include) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2017-09-28 09:46:52 |
| Source code size: | 1845 bytes / 59 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 1119 / 1916 |
| Version history: | 11 change(s) |
| Referenced in: | #1034167 - Standard Classes + Interfaces (LIVE, continuation of #1003674) |