小编phi*_*294的帖子

JTextPane 附加 HTML 字符串

我可以在没有任何 HTML 问题的情况下解析 JTextPane 的内容:

textPane = new JTextPane();
textPane.setContentType("text/html");
textPane.setText(<b>Hello!</b>);
// ...
setVisible(true);
Run Code Online (Sandbox Code Playgroud)

这导致

你好!

但是每当我尝试将字符串附加到 textPane 时,使用

styledDoc = (StyledDocument) textPane.getStyledDocument();
styledDoc.insertString(styledDoc .getLength(), <b>Goodbye!</b>, null );
Run Code Online (Sandbox Code Playgroud)

(如在这个问题中所见),我的输出是

你好! <b>Goodbye!</b>

(没有空格) - 所以 html 格式被跳过。

如何将字符串附加到我的 JTextPane 对象并保留添加部分的 HTML 格式?

html java formatting append jtextpane

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

在Swing App中检测CTRL + V但保留原始功能

在聊天应用程序中,我希望用户能够从他/她的剪贴板发送图像.为此,我想抓住任何CTRL+V键盘输入.由于默认情况下应该可以粘贴文本,因此不能覆盖原始的ctrl + v-function(粘贴文本).

我看到有两种方法,其中一种方法对我无效:

1st:取自官方Java文档:KEY LISTENER

editorPane.addKeyListener(new KeyListener() {
    @Override
    public void keyPressed(KeyEvent e) {
        e.getKeyChar()
        // when I press ctrl+v, ^ this is falsely a white square character, looks like (U+25A1). Plain v without ctrl does work.
        e.getKeyCode()
        // ^ this is falsely 0

        // (e.getModifiersEx() correctly returns InputEvent.CTRL_DOWN_MASK)
    }
Run Code Online (Sandbox Code Playgroud)

第二名:关键约束力

InputMap iMap = editorPane.getInputMap(condition);
ActionMap aMap = editorPane.getActionMap();
iMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_DOWN_MASK), "ctrlV");
aMap.put("ctrlV", new AbstractAction() {
    @Override
    public void actionPerformed(ActionEvent e) {
        // …
Run Code Online (Sandbox Code Playgroud)

java swing keylistener key-bindings ctrl

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

使阻塞调用异步

我正在为 X11 使用 Crystal 绑定,典型用法如下所示

loop do
    event = display.next_event # <- blocking!
    # do stuff with event
end
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我现在无法并行执行任何操作,因为它next_event是本机 C 代码,因此永远不会产生结果。

xlib 的 NextEvent 总是阻塞的,在 C 中也是如此。有一个关于它的线程提供了可能的替代方案,但轮询比 更慢并且对 CPU 的要求更高next_event,所以我想坚持使用阻塞调用。我是否必须将其放入单独的操作系统线程中?-Dpreview_mt实际上解决了这个问题,但这是一个实验性标志,并使所有并发线程化,这是不必要的(编辑:刚刚发现,这不是真的,有spawn same_thread: true do语法)。我有什么选择?

编辑:我刚刚发现此主题中对此进行了更详细的讨论,值得阅读该主题。如果您能以某种方式获得 FD,也可以解决此FileDescriptor问题。wait_readable

crystal-lang

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

在纯 CSS 中淡出动画

来自/sf/answers/653389271/:让我们假设一个以编程方式切换的基本元素。这可能意味着将显示设置为无/阻止或完全删除/插入元素。

$('#toggle').click(() => $('#square').toggle());
Run Code Online (Sandbox Code Playgroud)
#square {
  width: 50px;
  height: 50px;
  background: lightblue;
}
.animated {
  animation: fade-in 1s;
}
@keyframes fade-in {
    from { opacity: 0; }
      to { opacity: 1; }
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button id="toggle">toggle</button>
<div id="square" class="animated"></div>
Run Code Online (Sandbox Code Playgroud)

使用简单的animation,您可以为元素出现时添加过渡效果。当元素消失时,你如何做同样的事情?

我不想添加更多的类,没有:hover,也没有更多的 Javascript 代码。在许多 JS 框架中,您可以轻松地显示/隐藏元素:.toggle()(JQuery,同上)、ng-if(AngularJS)、*ngIf(Angular)、条件渲染(React)、v-if(VueJS)等等。使用上述解决方案,一个简单的class="animated"就足以让它与自定义动画一起出现。所以我在这里寻找淡出动画的纯 CSS 解决方案,假设这是一个标准问题。

css

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