public final static HashMap<String, Integer> party = new HashMap<String, Integer>();
party.put("Jan",1);
party.put("John",1);
party.put("Brian",1);
party.put("Dave",1);
party.put("David",2);
Run Code Online (Sandbox Code Playgroud)
如何返回多少人的价值1
我可以在Spring文档之后通过WebSockets发送和接收带有STOMP的JSON .然而,在高速率下性能很差,因此我希望分析二进制消息的使用.
我使用SimpMessageTemplate发送消息和必要的代理中继 - 请参阅spring文档
@Controller
public class DemoBinaryController {
@Autowired
private SimpMessagingtemplate template
@Scheduled(fixedDelay = 5000)
public void demo() throws Exception {
GenericMessage<byte[]> message = new GenericMessage<byte[]>(new byte[]{65,66,67});
template.send("/app/binarydemo", message);
}
}
Run Code Online (Sandbox Code Playgroud)
JavaScript客户端使用标准机制使用stomp.js接收数据.
var subscription = client.subscribe("/app/binarydemo", new function(message) {
console.log("RX message", typeof message.body, message.body.length);
});
Run Code Online (Sandbox Code Playgroud)
收到消息,但作为字符串,控制台输出如下.我期待一些原始类型,比如ArrayBuffer
RX message string 3
RX message string 3
Run Code Online (Sandbox Code Playgroud)
我实现了STOMP T代表文本,但是Spring文档意味着二进制消息可能至少与普通的WebSockets,也蹬规范状态
STOMP是基于文本的,但也允许传输二进制消息.
我正在试图弄清楚如何使用JavaFx.我在Scene Builder中构建了应用程序界面.但我无法访问该组件,因为所有组件都加载到Parent中.
Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
Run Code Online (Sandbox Code Playgroud)
如果我在"Pane"上更改"Parent",我可以访问getChildren(),但如果我知道fx:id,则不清楚如何获得控制权...
问题更简单.我在Scene Builder中添加了Label或TextField.如果我知道fx:id,如何从代码中更改它的文本?
我绝望了.
我不得不从源代码构建gnu make,原因太复杂了,无法解释.
我注意到构建它我需要make命令本身,以传统方式:
./configure
make install
Run Code Online (Sandbox Code Playgroud)
那么如果我没有make二进制文件呢?第一个二进制来自哪里?
Oracle 与最新版本的 JDK一起发布了“Java SE 开发套件 8u20 演示和示例下载” ,最新版本是 8u20。
然而,在存档页面上仅列出了主要的 JDK 包,我需要专门针对 8u11 查找“演示和示例”。
有什么地方可以下载这些吗?我在 oracle 网站上找不到有关它们的任何信息,也无法在谷歌上搜索“Java SE Development Kit 8u11 Demos and Samples Downloads”等内容,但找不到任何官方信息。
我正在学习JavaFX,我想创建一个正常工作的单元工厂,直到我想删除我的一行ListView:
plateList.setCellFactory(new Callback<ListView<Car>, ListCell<Car>>() {
@Override
public ListCell<Car> call(ListView<Car> param) {
ListCell<Car> cell = new ListCell<Car>() {
@Override
protected void updateItem(Car item, boolean empty) {
super.updateItem(item, empty);
if (item != null) {
setText(item.getPlate());
}
}
};
return cell;
}
});
Run Code Online (Sandbox Code Playgroud)
我正在填充ListView一些示例数据:
ObservableList<Car> sample = FXCollections.observableArrayList();
sample.add(new Car("123-abc", "opel", "corsa", 5.5));
sample.add(new Car("123-cba", "vw", "passat", 7.5));
plateList.setItems(sample);
Run Code Online (Sandbox Code Playgroud)
现在我将看到我期望的ListView将是以下内容:
如果删除行ex:第一行(123-abc),ListView将如下所示:
这是删除部分:
@FXML
private void deleteBtnAction() {
plateList.getItems().remove(plateList.getSelectionModel().getSelectedItem());
ObservableList<Car> t = …Run Code Online (Sandbox Code Playgroud) 看来在FXML中如果没有指定ID(CSS),则默认使用fx:id值.我之前的理解是两个完全不相交,CSS的CSS和只有CSS.fx:控制器中@FXML绑定的id.
这可以通过一个小测试来证明 - 三个按钮,首先是ID,第二个是FX:ID,第三个是两种类型的ID.
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Button id="cssid0" mnemonicParsing="false" text="Button" />
<Button fx:id="fxid1" mnemonicParsing="false" text="Button" />
<Button id="cssid2" fx:id="fxid2" mnemonicParsing="false" text="Button" />
</children>
</VBox>
Run Code Online (Sandbox Code Playgroud)
使用Node.lookup(cssSelector)允许通过fx:id进行选择
@Override
public void start(Stage stage) throws Exception {
FXMLLoader loader = new FXMLLoader(getClass().getResource("/foo.fxml"));
Parent p = loader.load();
System.out.println(p.lookup("#cssid0")); // => Button[id=cssid0, styleClass=button]'Button'
System.out.println(p.lookup("#fxid1")); // => Button[id=fxid1, styleClass=button]'Button'
System.out.println(p.lookup("#fxid2")); // => null (if there is a CSS ID it takes precedent)
System.out.println(p.lookup("#cssid2")); // Button[id=cssid2, styleClass=button]'Button'
stage.setScene(new Scene(p, 200, …Run Code Online (Sandbox Code Playgroud) 我如何使用JavaFx为我的应用程序制作自定义ListView.我需要每个行listView的HBox图像和2个标签.
对于给定的控制器,无论如何都有内置的方式访问控制器"附加"的节点,而不必给它一个FXML ID和特定的注释?我在官方文档中找不到与此相关的任何内容或在线搜索.
例如,如何从org.example.FooController访问HBox
<HBox xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.example.FooController">
<children>
<Button mnemonicParsing="false" text="Button" />
</children>
</HBox>
Run Code Online (Sandbox Code Playgroud)
现在我只是给节点一个FXML ID为"root",然后在我的控制器中使用以下内容,但感觉我错过了一个技巧......
@FXML
private Node root
Run Code Online (Sandbox Code Playgroud) 我正在尝试将 Swing 内容嵌入到更大的 JavaFX 应用程序中,但是我无法让嵌入的 JPanel 具有透明背景。JPanel 仅绘制其部分区域。我希望绿色“显示出来”,即删除下图中的浅灰色背景。

public class TransparentSwingNode extends Application {
@Override
public void start(Stage stage) {
BorderPane pane = new BorderPane();
pane.setStyle("-fx-background-color: green");
final SwingNode swingNode = new SwingNode();
BorderPane.setMargin(swingNode, new Insets(20));
createAndSetSwingContent(swingNode);
pane.setCenter(swingNode);
// swingNode.setStyle("-fx-background-color: transparent"); // doesn't work
stage.setScene(new Scene(pane, 240, 240));
stage.show();
}
private void createAndSetSwingContent(final SwingNode swingNode) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JPanel panel = new DummyPanel();
panel.setOpaque(false);
// panel.setBackground(null); // doesn't work
// panel.setBackground(new Color(0, 0, 0, …Run Code Online (Sandbox Code Playgroud)