我必须创建一个应用程序,其中最小化和最大化按钮将被禁用.
我已经习惯"StageStyle.UNDECORATED"了应用程序不再可移动或可拖动,所以我正在寻找任何其他替代方案来进行我的应用程序.
有没有人有这方面的解决方案?
我有一个ComboBox<Perosn>类型Person,其中我添加了几个Person类的对象,
我已经使用setCellFactory(Callback)方法在ComboBox下拉列表中显示人名
combobox.setCellFactory(
new Callback<ListView<Person >, ListCell<Person >>() {
@Override
public ListCell<Person > call(ListView<Person > p) {
ListCell cell = new ListCell<Person >() {
@Override
protected void updateItem(Person item, boolean empty) {
super.updateItem(item, empty);
if (empty) {
setText("");
} else {
setText(item.getName());
}
}
};
return cell;
}
});
Run Code Online (Sandbox Code Playgroud)
并且,在选择上setButtonCell(ListCell)显示名称的方法combobox.
combobox.setButtonCell(
new ListCell<Object>() {
@Override
protected void updateItem(Person t, boolean bln) {
super.updateItem(t, bln);
if (bln) {
setText(""); …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Robot类在我的JavaFX应用程序中捕获屏幕截图,
这是我在我的应用程序中使用的代码:
Rectangle screenBounds = new Rectangle(Screen.getPrimary().getBounds().getWidth(),
Screen.getPrimary().getBounds().getHeight());
Robot robot = new Robot();
BufferedImage img = robot.createScreenCapture(new java.awt.Rectangle(
(int) screenBounds.getX(), (int) screenBounds.getY(), (int)
screenBounds.getWidth(), (int) screenBounds.getHeight()));
Run Code Online (Sandbox Code Playgroud)
它在Windows操作系统中运行良好,但headless environment在MAC OS中显示错误Robot robot = new Robot();
我想将TIF图像转换为JPG图像.为此,我使用以下代码:
SeekableStream s = new FileSeekableStream(tiffUrl);
TIFFDecodeParam param = null;
ImageDecoder dec = ImageCodec.createImageDecoder(EXT_TIFFX, s, param);
RenderedImage op = dec.decodeAsRenderedImage(0);
FileOutputStream fos = new FileOutputStream(jpgUrl);
JPEGEncodeParam jpgparam = new JPEGEncodeParam();
jpgparam.setQuality(quality);
ImageEncoder en = ImageCodec.createImageEncoder(EXT_JEPGX, fos, jpgparam);
en.encode(op);
fos.flush();
fos.close();
s.close();
Run Code Online (Sandbox Code Playgroud)
在转换之前,我的图像大小约为92KB,比特深度= 1转换后,我的新jpg图像大小约为1573KB,比特深度= 24
我需要在100KB以下管理我的新图像.我想如果我将Bit Depth控制为1本身就可以做到这一点.
是否有任何解决方案有助于执行此操作?
当任何表中没有记录时,它会显示一条消息"表中没有内容",这默认是JavaFx中TableView的功能.
所以我的问题是,JavaFx中的ListView是否可以实现相同的目标?就像,如果任何ListView中没有项目,那么它将显示与TableView相同的消息,而不是空白/空字段.
我正在为MAC和Windows开发一个javaFx应用程序,我发现该应用程序在MAC中使用的是非常大的内存和CPU使用率.
当我在Windows任务管理器中看到我的应用程序活动时,它显示平均80MB内存和1-2%CPU的使用率,最大可达150MB和12-15%CPU.另一方面,在MAC Activity Monitor中,相同的应用程序在启动时显示150MB和12-15%的CPU,并且持续增加超过1GB和90%的CPU.
这是我在JavaFX应用程序中发现的一个非常奇怪的问题.
我甚至测试了这个简单的java应用程序,并发现在MAC和Windows中内存和CPU的类似行为.
为什么Java在MAC中使用更多内存和CPU?有什么可以解决这个问题的原因吗?
我正在制作一个桌面应用程序,它具有服务器的登录和注销功能.
每当有人关闭窗口时我都需要从应用程序注销,所以我使用这些代码
primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>() {
@Override
public void handle(WindowEvent event) {
event.consume();
closeWindow();
}
});
Run Code Online (Sandbox Code Playgroud)
其中closeWindow()包含注销和其他相关步骤.
现在,当应用程序意外关闭或有人从任务管理器强制退出/关闭它时(通过结束进程)存在问题.
JavaFX是否有任何事件可以强制关闭或意外关闭?或者,如果有任何方法可以阻止它?
我需要对一个数组进行排序,其中匹配的项目会出现,而其他项目会出现故障.
对于Ex.我有一个数组:[z,asxdf,abasdf,abcasdf,b,bc,bcd,c] 我需要的是当我传递KeyWord假设"b"时,它应该对给定的数组进行排序,其中所有的字符串都以b ..将首先出现,之后是其余的.这将产生最终输出:[b,bc,bcd,z,c,..(休息).]
如果可以在Java中使用比较器?
String keyWord = "b";
String[] s = {"z", "asxdf", "abasdf", "abcasdf", "b", "bc", "bcd", "c"};
Arrays.sort(s, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
//Code to sort array according to need
}
});
System.out.println(Arrays.toString(s));
Run Code Online (Sandbox Code Playgroud)
Result -> [ b , bc , bcd , z , c , ...]
(我可以使用List而不是Array,或任何其他如果它可以帮我解决这个问题)
我试图将TIF/TIFF图像转换为JPG,但工作正常但是对于很少的TIF图像我得到IllegalArgumentException:Bad endianness标记(不是0x4949或0x4d4d).
例外:
java.io.IOException: Bad endianness tag (not 0x4949 or 0x4d4d).
at com.sun.media.jai.codecimpl.CodecUtils.toIOException(CodecUtils.java:76)
at com.sun.media.jai.codecimpl.TIFFImageDecoder.getNumPages(TIFFImageDecoder.java:98)
at com.sun.media.jai.codecimpl.TIFFImageDecoder.decodeAsRenderedImage(TIFFImageDecoder.java:103)
at com.sun.media.jai.codec.ImageDecoderImpl.decodeAsRenderedImage(ImageDecoderImpl.java:140)
at com.pkg.jae.utils.GenericImageUtils.convertTiffToJpg(GenericImageUtils.java:35)
at com.pkg.jae.utils.GenericImageUtils.main(GenericImageUtils.java:92)
Caused by: java.lang.IllegalArgumentException: Bad endianness tag (not 0x4949 or 0x4d4d).
at com.sun.media.jai.codec.TIFFDirectory.getNumDirectories(TIFFDirectory.java:595)
at com.sun.media.jai.codecimpl.TIFFImageDecoder.getNumPages(TIFFImageDecoder.java:96)
... 4 more
Run Code Online (Sandbox Code Playgroud)
代码功能:
public static void convertTiffToJpg(String strTiffUrl,String strJpgFileDestinationUrl) throws Exception {
try {
FileSeekableStream obj_FileSeekableStream = new FileSeekableStream(new File(strTiffUrl));
ImageDecoder obj_ImageDecoder = ImageCodec.createImageDecoder(EXT_TIFFX, obj_FileSeekableStream, null);
RenderedImage obj_RenderedImage = obj_ImageDecoder.decodeAsRenderedImage();
JAI.create("filestore", obj_RenderedImage,strJpgFileDestinationUrl, EXT_JEPGX);
obj_RenderedImage = null;
obj_ImageDecoder = null;
obj_FileSeekableStream.close();
} catch …Run Code Online (Sandbox Code Playgroud) 我在JavaFx8中创建了一个工作正常,但有时显示异常,如下所述.我无法理解为什么我会遇到这种例外.有没有办法跟踪此异常.或任何熟悉此类例外的人.请帮助.
java.lang.NullPointerException
at com.sun.pisces.PiscesRenderer.fillLCDAlphaMask(PiscesRenderer.java:334)
at com.sun.prism.sw.SWGraphics.drawStringInternal(SWGraphics.java:776)
at com.sun.prism.sw.SWGraphics.drawString(SWGraphics.java:732)
at com.sun.javafx.sg.prism.NGText.renderText(NGText.java:319)
at com.sun.javafx.sg.prism.NGText.renderContent(NGText.java:277)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:412)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:69)
at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1283)
at com.sun.javafx.sg.prism.NGGroup.renderChildren(NGGroup.java:237)
at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:203)
at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:1254)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:412)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:69)
at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1283)
at com.sun.javafx.sg.prism.NGGroup.renderChildren(NGGroup.java:237)
at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:203)
at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:1254)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:412)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:69)
at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1283)
at com.sun.javafx.sg.prism.NGGroup.renderChildren(NGGroup.java:237)
at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:203)
at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:1254)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:412)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:69)
at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1283)
at com.sun.javafx.sg.prism.NGGroup.renderChildren(NGGroup.java:237)
at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:203)
at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:1254)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:412)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:69)
at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1283)
at com.sun.javafx.sg.prism.NGGroup.renderChildren(NGGroup.java:237)
at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:203)
at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:1254)
at com.sun.javafx.sg.prism.NodeEffectInput.render(NodeEffectInput.java:154)
at com.sun.javafx.sg.prism.NodeEffectInput.filter(NodeEffectInput.java:84)
at com.sun.scenario.effect.Merge.filter(Merge.java:161)
at com.sun.scenario.effect.DelegateEffect.filter(DelegateEffect.java:70) …Run Code Online (Sandbox Code Playgroud) 我正在尝试制作一个组合框,它具有从其项目中搜索匹配项的功能。
这是我所做的代码示例,
ObservableList<String> ab = FXCollections.observableArrayList("z", "asxdf", "abasdf", "bcasdf", "b", "bc", "bcd", "c");
final ComboBox box = new ComboBox(ab);
box.setEditable(true);
box.setOnKeyReleased(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent t) {
box.show();
for (String item : items) {
if (item.startsWith(box.getEditor().getText())) {
box.getSelectionModel().select(item); //which selects the item.
break;
}
}
}
});
Run Code Online (Sandbox Code Playgroud)
现在的问题是box.getSelectionModel().select(item);选择在组合框中键入的特定项目,但我不想选择该项目,我只想将鼠标悬停在(聚焦)该项目上,就像鼠标悬停时一样。
谁能告诉我要替换的代码box.getSelectionModel().select(item);并帮助我解决这个问题。