小编Đor*_*jić的帖子

JavaFX TextArea onChange事件

好日子开发者:)

JavaFX组件TextArea是否支持某些事件,如onTextChange或类似事件?是的,我知道keyPressed,keyTyped ......但是如果另一个"action"在TextArea上做了更改,如何处理事件(例如.txArea.setText("some text")).

components textarea javafx

14
推荐指数
3
解决办法
2万
查看次数

扩展Vuetify组件

扩展vue(vuetify)组件的最佳方法是什么v-select.

例如,我想创建<v-city></v-city>一个扩展的组件,v-select其中props加载了最小的异步项,并选择了一个项.

我已经开始了 template

<template>
    <v-select
        :items="items"
        v-model="item"
        required
        return-object
        autocomplete
        item-text="name"
        item-value="id"
    ></v-select>
</template>
Run Code Online (Sandbox Code Playgroud)

script

<script>
    export default {
        name: 'v-city',
        data()
        {
            return {
                item: null,
                items: [],
                disabled: true
            };
        },
        created()
        {
            this.$http({
                method: 'GET',
                url: '/api.cities'
            })
                .then(response => this.items = response.data)
                .catch(console.warn);
        },
        methods: {},
        watch: {
            item(nv)
            {
                this.$emit('update', nv.id);
            }
        }
    };
</script>
Run Code Online (Sandbox Code Playgroud)

用法: <v-city @update="local.city = arguments[0]"></v-city>

我要归档的是: <v-city v-model="local.city" label="Select city"></v-city>

vue.js vuejs2

8
推荐指数
2
解决办法
2732
查看次数

Java WebSocket 消息限制

我正在尝试在简单的 Java 应用程序(使用java.net.http.WebSocket类)和google-chrome使用远程运行之间创建通信google-chrome --remote-debugging-port=9222 --user-data-dir=.

发送和接收小消息按预期工作,但在 16kb 大消息的情况下会出现问题。

这是java源代码的一部分:


var uri = new URI("ws://127.0.0.1:9222/devtools/page/C0D7B4DBC53FB39F7A4BE51DA79E96BB");

/// create websocket client
WebSocket ws = HttpClient
    .newHttpClient()
    .newWebSocketBuilder()
    .connectTimeout(Duration.ofSeconds(30))
    .buildAsync(uri, simpleListener)
    .join();

// session Id attached to chrome tab
String sessionId = "...";

// send message
String message = "{\"id\":1,\"method\":\"Runtime.evaluate\",\"params\":{\"expression\":\"document.body.style.backgroundColor = 'blue';\",\"returnByValue\":true,\"awaitPromise\":true,\"userGesture\":true},\"sessionId\":\"" + sessionId + "\"}";

// this works
ws.send(message, true);

// generate big string contains over 18k chars for testing purpose
String bigMessage = "{\"id\":2,\"method\":\"Runtime.evaluate\",\"params\":{\"expression\":\"[" + ("1,".repeat(9000)) + …
Run Code Online (Sandbox Code Playgroud)

java websocket google-chrome-devtools java-http-client chrome-devtools-protocol

8
推荐指数
1
解决办法
1430
查看次数

使用syn时如何从Option &lt;T&gt;获取T?

syn用来解析Rust代码。当我使用读取命名字段的类型时field.ty,得到一个syn::Type。当我使用打印时,quote!{#ty}.to_string()我得到了"Option<String>"

我怎样才能得到"String"?我想用#tyquote!打印"String"代替"Option<String>"

我想生成如下代码:

impl Foo {
    pub set_bar(&mut self, v: String) {
        self.bar = Some(v);
    }
}
Run Code Online (Sandbox Code Playgroud)

从...开始

struct Foo {
    bar: Option<String>
}
Run Code Online (Sandbox Code Playgroud)

我的尝试:

let ast: DeriveInput = parse_macro_input!(input as DeriveInput);

let data: Data = ast.data;

match data {
    Data::Struct(ref data) => match data.fields {
        Fields::Named(ref fields) => {

            fields.named.iter().for_each(|field| {
                let name = &field.ident.clone().unwrap();

                let ty = &field.ty; …
Run Code Online (Sandbox Code Playgroud)

metaprogramming rust rust-proc-macros

2
推荐指数
2
解决办法
452
查看次数