我正在尝试进行ListView 编辑,但是当我添加事件处理程序时onEditCommit,onEditCancel在代码中我无法更改文本ListView.在我的代码下面(执行但编辑不起作用):
public class ItensTipoStringController implements Initializable {
@FXML
private ListView lstItens;
ArrayList<String> itens = new ArrayList<>();
ObservableList itensObservaveis = FXCollections.observableArrayList(itens);
@Override
public void initialize(URL url, ResourceBundle rb) {
itens.add("Evandro");
itens.add("Miguel");
lstItens.setEditable(true);
lstItens.setCellFactory(TextFieldListCell.forListView());
lstItens.getItems().addAll(itens);
lstItens.setOnEditCommit(new EventHandler() {
@Override
public void handle(Event event) {
System.out.println("onEditCommit");
}
});
lstItens.setOnEditCancel(new EventHandler() {
@Override
public void handle(Event event) {
System.out.println("onEditCancel");
}
});
lstItens.setOnEditStart(new EventHandler() {
@Override
public void handle(Event event) {
System.out.println("onEditStart");
}
}); …Run Code Online (Sandbox Code Playgroud) 我想列出班上所有的颜色Color.<color>。
在哪里可以找到列出的所有颜色?
我是FX的新手,对Java不是那么新,所以请耐心等待!我所拥有的是一个使用由ObservableList支持的JavaFX TableView的简单应用程序.
当我第一次启动应用程序时,我生成另一个Thread(来自Application的start方法)来监听对日志文件的更改,并将另一个元素添加到ObservableList中,以便在TableView中可以立即看到该行.我认为在窗口中包含一个包含ObservableList当前大小的Label是有益的.我试图将Label的textProperty绑定到ObservableList的大小.我的第一次尝试产生了:
tableSizeLabel.textProperty().bind(Bindings.size((tableView.getItems())).asString());
但我相信我误解了Bindings API.我意识到ObservableList.size()返回一个常规的int而不是ObservableValue,它甚至可以工作,但我认为Bindings类有一个静态方法为我创建一个.
后端模型将列表作为静态变量包含在内(我省略了listen-for-changes部分):
public class LogFileListener implements Runnable {
private static final ObservableList<SNMPTrap> model = FXCollections.observableArrayList();
@Override
public void run() {
String line = null;
try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(fileLocation)))) {
while ((line = br.readLine()) != null) {
model.add(parseTrap(line));
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static ObservableList<SNMPTrap> getModel() {
return model;
}
Run Code Online (Sandbox Code Playgroud)
}
应用类:
public class TableDisplay extends Application {
@Override
public void start(Stage stage) throws Exception {
new …Run Code Online (Sandbox Code Playgroud) 我是JavaFX动画的新手.我正在尝试将代码作为另一个大项目的试验; 基本上我想用鼠标拖动移动圆圈,当圆圈在矩形上方时,突出显示矩形.如果将圆圈拖放到矩形上,请将其颜色更改为圆形的颜色.
到目前为止,我已经设法用鼠标移动圆圈,但我不确定为什么矩形的OnDragEntered方法什么都不做.
这是FXML:
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.paint.*?>
<?import javafx.scene.shape.*?>
<?import javafx.scene.text.*?>
<AnchorPane id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml" fx:controller="com.sc.colordx.controller.D15Controller">
<children>
<Rectangle fx:id="r1" arcHeight="5.0" arcWidth="5.0" fill="WHITE" height="152.0" layoutX="33.0" layoutY="14.0" onDragDropped="#fillBox" onDragEntered="#highlightBox" pickOnBounds="true" stroke="BLACK" strokeType="INSIDE" width="52.5" />
<Rectangle fx:id="r2" arcHeight="5.0" arcWidth="5.0" fill="WHITE" height="152.0" layoutX="91.0" layoutY="14.0" onDragDropped="#fillBox" onDragEntered="#highlightBox" stroke="BLACK" strokeType="INSIDE" width="52.5" />
<Circle fx:id="c1" fill="DODGERBLUE" layoutX="348.0" layoutY="262.0" onDragDetected="#startDrag" onMouseDragged="#moveCircle" onMouseReleased="#removeBind" radius="54.5" stroke="BLACK" strokeType="INSIDE" />
<Circle id="c1" fx:id="c2" fill="#ff3d00" layoutX="217.0" layoutY="262.0" onDragDetected="#startDrag" onMouseDragged="#moveCircle" onMouseReleased="#removeBind" …Run Code Online (Sandbox Code Playgroud) 我在.fxml文件中创建TreeView,然后我尝试显示根节点.但它没有显示出来.
这是我的代码.
<TabPane prefHeight="289.0" prefWidth="246.0" styleClass="tab-pane" tabClosingPolicy="UNAVAILABLE" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<stylesheets>
<URL value="@main.css" />
</stylesheets>
<tabs>
<Tab text="TestBed Explorer">
<content>
<AnchorPane id="Content" fx:id="soariteAnchorScollparent" minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<ScrollPane fx:id="soariteTreeScrollPane" prefHeight="259.0" prefWidth="246.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<content>
<AnchorPane id="Content" fx:id="soariteTreeAnchorPane" minHeight="0.0" minWidth="0.0" prefHeight="249.0" prefWidth="73.0">
<children>
<TreeView fx:id="soariteTree" prefHeight="245.0" prefWidth="79.0" showRoot="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="167.0" AnchorPane.topAnchor="0.0">
<TreeItem expanded="true" value="categories" fx:id="rootTreeItem" />
</TreeView>
</children>
</AnchorPane>
</content>
</ScrollPane>
</children>
</AnchorPane>
</content>
</Tab>
</tabs>
</TabPane>
Run Code Online (Sandbox Code Playgroud)
我也在主要类中给出了这个参考.
public class Mainextends Application {
@FXML
public TreeView<String> …Run Code Online (Sandbox Code Playgroud) 我想知道如何实现以下按钮样式,其中文本位于JavaFx中的图像下面?
我尝试了很多但都徒劳无功.任何帮助,将不胜感激.

是否可以自定义TableView的默认滚动条(垂直滚动条)使其更厚?
我正在使用此代码来实现选择侦听器:
treeView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<TreeItem<DynamicTreeNodeModel>>()
{
@Override
public void changed(ObservableValue<? extends TreeItem<DynamicTreeNodeModel>> observable, TreeItem<DynamicTreeNodeModel> oldValue, TreeItem<DynamicTreeNodeModel> newValue)
{
System.out.println("Selected Text : " + newValue.getValue());
........
}
}
Run Code Online (Sandbox Code Playgroud)
我只想在用鼠标左键单击时才使用更改侦听器.我怎么能这样做?
我正在尝试实现一个菜单.这是我的代码:
Menu menuFile1 = new Menu("ADD");
Menu menuFile2 = new Menu("EDIT");
Menu menuFile3 = new Menu("VIEW");
Menu menuFile4 = new Menu("HELP");
Run Code Online (Sandbox Code Playgroud)
如何在每个菜单之间放置一些空格(即ADD,EDIT,VIEW和HELP之间)?
我想在创建新标签时禁用默认动画。
Tab tabA = new Tab();
tabA.setText("Tab A");
tabPane.getTabs().add(tabA);
Run Code Online (Sandbox Code Playgroud)
这可能吗?