小编Ada*_*dam的帖子

计算有多少HashMap条目具有给定值

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

java key hashmap

10
推荐指数
3
解决办法
1万
查看次数

是否可以使用Spring-WebSockets通过WebSockets通过STOMP发送二进制数据?

我可以在Spring文档之后通过WebSockets发送和接收带有STOMP的JSON .然而,在高速率下性能很差,因此我希望分析二进制消息的使用.

  • Spring-WebSockets 4.0
  • 在Chrome 35中运行的JavaScript客户端
  • stomp.js 1.7.1

发出

我使用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是基于文本的,但也允许传输二进制消息.

  • 调试发送代码,就我所见,它似乎保持为byte []
  • 在接收时调试stomp.js库.在底层ws.onmessage回调中收到该消息似乎是一个字符串(stomp-1.7.1.js中的第243行)
  • 大量的搜索 …

javascript spring stomp websocket spring-websocket

9
推荐指数
1
解决办法
8332
查看次数

FXMLLoader如何通过FXID访问组件?

我正在试图弄清楚如何使用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,如何从代码中更改它的文本?

我绝望了.

java javafx scenebuilder

9
推荐指数
2
解决办法
1万
查看次数

第一个二进制文件来自哪里?

我不得不从源代码构建gnu make,原因太复杂了,无法解释.

我注意到构建它我需要make命令本身,以传统方式:

./configure
make install
Run Code Online (Sandbox Code Playgroud)

那么如果我没有make二进制文件呢?第一个二进制来自哪里?

linux makefile

7
推荐指数
1
解决办法
250
查看次数

查找特定 JDK 版本的“示例和演示”

Oracle 与最新版本的 JDK一起发布了“Java SE 开发套件 8u20 演示和示例下载” ,最新版本是 8u20。

然而,在存档页面上仅列出了主要的 JDK 包,我需要专门针对 8u11 查找“演示和示例”。

有什么地方可以下载这些吗?我在 oracle 网站上找不到有关它们的任何信息,也无法在谷歌上搜索“Java SE Development Kit 8u11 Demos and Samples Downloads”等内容,但找不到任何官方信息。

java oracle

7
推荐指数
1
解决办法
4373
查看次数

使用自定义单元格工厂的ListView在删除项目后不会更新

我正在学习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将是以下内容:

  • 123-ABC
  • 123-CBA

如果删除行ex:第一行(123-abc),ListView将如下所示:

  • 123-CBA
  • 123-CBA

这是删除部分:

@FXML
private void deleteBtnAction() {
   plateList.getItems().remove(plateList.getSelectionModel().getSelectedItem());
    ObservableList<Car> t = …
Run Code Online (Sandbox Code Playgroud)

java listview javafx

7
推荐指数
2
解决办法
1万
查看次数

在FXML中使用fx:id作为CSS id

看来在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 javafx-8

7
推荐指数
1
解决办法
3999
查看次数

ListView与JavaFX中的自定义内容

我如何使用JavaFx为我的应用程序制作自定义ListView.我需要每个行listView的HBox图像和2个标签.在此输入图像描述

java user-interface javafx javafx-8

6
推荐指数
1
解决办法
4730
查看次数

如何访问附加控制器的相应节点

对于给定的控制器,无论如何都有内置的方式访问控制器"附加"的节点,而不必给它一个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)

javafx javafx-8

5
推荐指数
1
解决办法
2539
查看次数

具有透明内容的 SwingNode

我正在尝试将 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)

java swing javafx javafx-8

5
推荐指数
1
解决办法
571
查看次数