小编Tho*_*mas的帖子

XPath:选择**具有特定名称的子元素

<a>
   <b/>
   <c/>
   <d/>
   <b/>
   <e/>
</a>
Run Code Online (Sandbox Code Playgroud)

如何选择那些不是"b"的"a"的孩子?

xpath

58
推荐指数
2
解决办法
4万
查看次数

在Java Swing中取消选择RadioButtons

显示一组JRadioButtons时,最初没有选择它们(除非您以编程方式强制执行).即使在用户已选择按钮之后,我也希望能够将按钮重新置于该状态,即,不应选择任何按钮.

但是,使用通常的嫌疑人无法提供所需的效果:在每个按钮上调用'setSelected(false)'不起作用.有趣的是,当按钮没有放入ButtonGroup时它确实有效 - 不幸的是,后者是JRadioButtons互斥的必需品.

此外,使用setSelected(ButtonModel,boolean) - javax.swing.ButtonGroup的方法不能做我想要的.

我已经整理了一个小程序来演示效果:两个单选按钮和一个JButton.单击JButton应取消选择单选按钮,以使窗口看起来与第一次弹出时完全一样.

import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.*;
import javax.swing.*;

/**
 * This class creates two radio buttons and a JButton. Initially, none
 * of the radio buttons is selected. Clicking on the JButton should
 * always return the radio buttons into that initial state, i.e.,
 * should disable both radio buttons.
 */
public class RadioTest implements ActionListener {
    /* create two radio buttons and a group */
    private JRadioButton button1 = …
Run Code Online (Sandbox Code Playgroud)

java swing radio-button

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

23
推荐指数
3
解决办法
4935
查看次数

Java2D:XWindows事件和帧速率之间的交互

我在Linux/XWindows上的简单Java2D应用程序中遇到系统事件和窗口刷新率之间的意外交互.最好用下面的小例子来说明.

该程序创建一个小窗口,其中以不同的旋转显示半圆.图形以每秒60帧的速度更新,以产生闪烁的显示.这是通过a BufferStrategy,即通过调用其show方法来实现的.

但是,我注意到当我(a)将鼠标移到窗口上以便窗口接收鼠标悬停事件或(b)按住键盘上的键以使窗口接收键盘事件时,闪烁明显增加.

由于BufferStrategy.show()调用的速率不受这些事件的影响,可以通过控制台上的打印输出看到(它们应该始终保持在60 fps左右).然而,更快的闪烁表明显示实际更新的速率确实改变了.

在我看来,除非生成鼠标或键盘事件,否则无法实现实际的,即每秒可见的60帧.

public class Test {
    // pass the path to 'test.png' as command line parameter
    public static void main(String[] args) throws Exception {
        BufferedImage image = ImageIO.read(new File(args[0]));

        // create window
        JFrame frame = new JFrame();
        Canvas canvas = new Canvas();
        canvas.setPreferredSize(new Dimension(100, 100));
        frame.getContentPane().add(canvas);
        frame.pack();
        frame.setVisible(true);

        int fps = 0;
        long nsPerFrame = 1000000000 / 60; // 60 = target fps
        long showTime = …
Run Code Online (Sandbox Code Playgroud)

java x11 frame-rate game-development graphics2d

12
推荐指数
1
解决办法
270
查看次数

Java Swing KeyStrokes:如何使CTRL修饰符工作

在下面的程序中,为什么在击中+时a按键打印"你好,世界"不?CTRLa

import java.awt.event.*;
import javax.swing.*;

public class KeyStrokeTest {
    public static void main(String[] args) {
        JPanel panel = new JPanel();

        /* add a new action named "foo" to the panel's action map */
        panel.getActionMap().put("foo", new AbstractAction() {
                public void actionPerformed(ActionEvent e) {
                    System.out.println("hello, world");
                }
            });

        /* connect two keystrokes with the newly created "foo" action:
           - a
           - CTRL-a
        */
        InputMap inputMap = panel.getInputMap();
        inputMap.put(KeyStroke.getKeyStroke(Character.valueOf('a'), 0), "foo");
        inputMap.put(KeyStroke.getKeyStroke(Character.valueOf('a'), InputEvent.CTRL_DOWN_MASK), "foo");

        /* display the …
Run Code Online (Sandbox Code Playgroud)

java swing action keystroke

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

Emacs/CVS/OpenSSH:阻止密码弹出

我在全屏模式下在我的Ubuntu上网本上使用GNU Emacs.当我编辑受版本控制的文件并点击Cx vv以提交最新更改时,OpenSSH弹出窗口将打开并询问我的存储库所在服务器的密码.

不幸的是,由于全屏模式,弹出窗口不会出现,我无法输入密码.但它仍然是某种模态,所以我也不能回到emacs,比如说,离开全屏模式(或者做其他任何事情,比如Cg).我基本上被困了.

作为一个emacs用户,我发现弹出窗口的想法无论如何令人作呕;-)所以理想情况下,我想要在迷你缓冲区中输入ssh密码.如何调整我的设置才能实现这一目标?(我更喜欢每次输入我的密码,而不是在〜/ .ssh /中存储密钥对).

cvs emacs openssh popup

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

在 Java 中可靠地播放短音

我很想写一些 Java 代码,这些代码基本上只是播放一个简短的 .wav 文件——“短”我的意思是几分之一秒。(我使用的文件位于 /usr/share/sounds/generic.wav,供使用 Ubuntu 的人使用。)

问题是,我似乎无法弄清楚如何可靠地播放该样本,即在我所有的尝试中,我可以让我的程序以 5 次中的 4 次左右播放声音,但永远不会 100%。

这是迄今为止作为独立程序效果最好的方法:

File soundFile = new File("/usr/share/sounds/generic.wav");
Clip clip = AudioSystem.getClip();
AudioInputStream inputStream = AudioSystem.getAudioInputStream(soundFile);
clip.open(inputStream);
clip.start(); 
Run Code Online (Sandbox Code Playgroud)

(请注意,代码甚至没有调用 clip.stop() )但即使有那个,如果我连续运行几次,迟早会有一个没有播放任何声音的运行,但没有也有例外。

我尝试过的变化:

1) 将音频文件加载到字节数组中并将其传递给 clip.open

2) 将 LineListener 附加到剪辑以等待 STOP 事件

加上一些随机试验,但到目前为止,我还没有设法创建每次都有效的代码。

我还知道以下错误:http : //bugs.sun.com/bugdatabase/view_bug.do?bug_id=4434125但我使用的是 Java 1.6 并且报告声称 Java 1.5 或更高版本应该没问题.

有任何想法吗?是PulseAudio吗?

java audio

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

如何快速删除emacs命令行中的所有文本?

我是Emacs的新手.我在Windows上运行emacs.当我点击它启动Emacs时runemacs.exe,我有一个欢迎窗口.现在要创建一个新文件并进行一些实验编辑,我按下C-x C-f.现在命令行显示类似于:

Find file: d:\emacs-23.3\bin
Run Code Online (Sandbox Code Playgroud)

通常我需要按退格键一段时间来删除d:\emacs-23\bin并输入一个新的文件名c:\test\a.txt.我的问题是,我怎样才能快速删除d:\emacs-23\bin?你如何处理欢迎窗口(我不喜欢它)?

谢谢

emacs text-editor editor

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

字体锁定关键字:突出显示多个子表达式

在为GNU/Emacs模式设置font-lock-keywords时,是否可以使用单个匹配器突出显示正则表达式的多个子表达式?我想做的是:

("\\(foo\\)-\\(bar\\)" '(1 foo-face) '(2 bar-face))
Run Code Online (Sandbox Code Playgroud)

这样的东西的正确语法是什么 - 或者我必须将它分成两个不同的匹配器?

emacs font-lock-mode

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

智能自动关闭匹配字符

在我正在使用的一些模式中,emacs通过自动关闭一些元素(如引号,括号)来帮助我.

然而有时候,出于习惯,我输入了我自己的结束元素并最终得到())或""".

如何设置emacs以忽略额外的密钥?

emacs

4
推荐指数
1
解决办法
1886
查看次数