首先,我正在使用Windows 7,Netbeans 8,JDK 8.
我有一个TableView包含POJO对象(不使用属性).
我正在尝试实现" 打字时搜索 ",但发生了一些奇怪的事情.
在此图像中,您可以看到所有学生都在显示:
在搜索完成后的下一张图片中,您可以看到问题.
前4名学生是实际的搜索结果,并且是可点击的活动条目TableView.
所有其他条目都可见但没有响应,但它们应该已被完全删除.
它是如何工作的 (编码部分):
1.当用户键入'f'时,调用一个函数.
2.在函数中我创建了包含搜索结果的新列表:
ObservableList<Student> subentries = FXCollections.observableArrayList();
3.然后我添加符合subentries列表
4中搜索条件的所有项目.我调用:
5.studentsTable.setItems(subentries);
错误的结果显示在图片2中
.HACKS我试过:
1. randomButton.fire();
2.
columnsOfTheTable.get(0).setVisible(false);
columnsOfTheTable.get(0).setVisible(true);
Run Code Online (Sandbox Code Playgroud)
以上不起作用.
任何帮助,将不胜感激.
谢谢
我正在开发一个JavaFX项目,我需要类似的东西TouchEvent是表征"推动并保持"事件.但它应该映射为一个MouseEvent因为我在Linux上遇到触摸事件的麻烦.例如,在Ubuntu中,它不会响应触摸事件.
请让我知道,如果你有关于如何火了任何想法MouseEvent ,每当一个"按下并保持"发生在Linux呢?
EventType系统在JavaFX中非常混乱.我认为原因是设计人员决定使EventType类本身通用.
是否有任何实际用途,或者这只是一种确保类型安全的模糊形式?
我想象只有当泛型类型返回到调用类时才会使类成为通用的.否则有什么意义呢?
JavaFX CSS指南建议通过CSS设置混合模式,如下所示:
-fx-blend-mode: blue
Run Code Online (Sandbox Code Playgroud)
但是在将以下CSS字符串应用于Text节点时,我得到了一个异常:
-fx-blend-mode:green;
-fx-fill:rgba(0.501960813999176,0.4000000059604645,0.800000011920929,1.0);
-fx-font-size:52;
-fx-font-style:normal;
-fx-font-weight:normal
Run Code Online (Sandbox Code Playgroud)
例外:
Dec 05, 2014 12:54:23 PM javafx.scene.CssStyleHelper calculateValue
WARNING: Caught 'java.lang.ClassCastException: javafx.scene.paint.Color cannot be
cast to java.lang.String' while converting value for '-fx-blend-mode' from
inline style on Text[text="Title At Company", x=0.0, y=0.0, alignment=LEFT,
origin=BASELINE, boundsType=LOGICAL, font=Font[name=System Regular, family=System,
style=Regular, size=13.0], fontSmoothingType=GRAY, fill=0x000000ff]
Run Code Online (Sandbox Code Playgroud)
CSS字符串是错的还是什么?我只需要通过CSS应用混合模式.
我正在尝试使用Maven编写JavaFx8应用程序.我写了一个简单的应用程序主类和一个fxml文件(一个什么都不做的root fxml文件).
当我尝试加载fxml根文件时,我收到错误"Location not set":
Exception in Application start method
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:363)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:303)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:875)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$147(LauncherImpl.java:157)
at com.sun.javafx.application.LauncherImpl$$Lambda$53/99550389.run(Unknown Source)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: Location is not set.
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2428)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2403)
at org.aklal.todofx.tasks.App.initRootLayout(App.java:58)
at org.aklal.todofx.tasks.App.start(App.java:31)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$153(LauncherImpl.java:821)
at com.sun.javafx.application.LauncherImpl$$Lambda$56/1712616138.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$166(PlatformImpl.java:323)
at com.sun.javafx.application.PlatformImpl$$Lambda$49/1268447657.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$null$164(PlatformImpl.java:292)
at …Run Code Online (Sandbox Code Playgroud) 在JavaFX的最后几个更新中,我们有警报.我想获取消息的默认图标(错误,警告,...).在Swing中,我可以通过某些UIManager属性获取L&F消息图标.如何在JavaFX中获取消息的默认图标?它们是包含在属性中还是由CSS类定义?
提前致谢.
我有一个JavaFX TableView,我正在使用ObservableList of Tasks填充.我一直在尝试创建一个显示每行索引的列,它作为表中任务的ID,但我在这里尝试了这个方法,其他来源的类似方法也没有成功.
我的代码供参考,没有表面错误(就Eclipse而言):
@FXML private TableColumn<Task, String> taskIndexCol;
Callback<TableColumn<Task, String>, TableCell<Task, String>> cb =
new Callback<TableColumn<Task, String>, TableCell<Task, String>>(){
@Override
public TableCell<Task, String> call(TableColumn<Task, String> col) {
TableCell<Task, String> cell = new TableCell<Task, String>() {
@Override
protected void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
if (item == null) {
setText("");
} else {
setText(getIndex()+"");
}
}
};
return cell;
}
};
taskIndexCol.setCellFactory(cb);
Run Code Online (Sandbox Code Playgroud)
目前,当我尝试设置列的CellFactory时,我的代码给了我一个NullPointerException.我已经尝试了一个填充的任务列表,但这没有帮助.我已经被困了很长时间了 - 理论上这应该很简单,因为它只是对行进行编号?感觉就像是在跳过一百万个箍来做一些令人沮丧的简单事情.
编辑:最后一行给了我NPE.
我正在尝试使用此方法在JavaFx CSS中加载自定义字体
@font-face {
font-family: 'Roboto';
src: url('fonts/Roboto-Medium.ttf');
}
Run Code Online (Sandbox Code Playgroud)
我已经用正确的路径完成了所有正确的操作,但是出现了此错误
Nov 28, 2015 4:49:18 PM com.sun.javafx.css.StyleManager loadStylesheetUnPrivileged
INFO: Could not load @font-face font [file:/C:/Users/RootUser/Desktop/Java8%20projects/RemoteViewer/out/production/JavaFxApplication/application/fonts/Roboto-Medium.ttf]
Run Code Online (Sandbox Code Playgroud)
这是我的项目结构“截图”
请注意,我正在使用intellij Idea作为我的IDE。
我找不到一种方法来向我的tableView添加一个简单的"String"行.实际上我可以添加一行,但其内容不可见 ......
这是我的代码:
@FXML
private TableView<String> table;
@FXML
private TableColumn<String, String> table2;
public ObservableList<String> getLanes()
{
ObservableList<String> lanes=FXCollections.observableArrayList();
lanes.add("TEST");
return lanes;
}
Run Code Online (Sandbox Code Playgroud)
然后:
table.setItems(getLanes()); //Not working
Run Code Online (Sandbox Code Playgroud)
和
table.getItems().add("TEST"); //Not working
Run Code Online (Sandbox Code Playgroud)
但没有成功.我读的是和那以及其他单证,但它并没有帮助我做这个简单的方法.
编辑:
添加此行解决了我的问题:
table2.setCellValueFactory(param -> new ReadOnlyStringWrapper(param.getValue()));
Run Code Online (Sandbox Code Playgroud) 我知道我可以使用按下的伪选择器设置颜色:
myButton:pressed{}
Run Code Online (Sandbox Code Playgroud)
问题是,我试图通过执行以下操作来覆盖样式表中的css背景颜色,从而在代码中执行此操作:
myButton.setStyle("fx-background-color: #FFF");
Run Code Online (Sandbox Code Playgroud)
后者失败确实改变了颜色.可能是因为一旦我设置我的样式表,我不能覆盖它?如何在点击时更改按钮颜色?