我做了一个SSCCE。请注意,它必须是Windows Look &感觉。getRootPane()默认按钮 - 这是一个错误?
import java.awt.*;
import javax.swing.*;
public class DefaultButtonBug {
private static final String LAF_WINDOWS = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(LAF_WINDOWS);
} catch (Exception ex) {
System.out.println("Setting the L&F failed so I cannot reproduce the bug.");
System.exit(1);
}
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
JPanel content = new JPanel();
JButton defaultButton = new JButton("Default");
content.add(defaultButton);
JFrame frame = new JFrame();
frame.getRootPane().setDefaultButton(defaultButton);
frame.setContentPane(content);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
});
}
}
- 启动这个
- 的按钮应该被重点关注。如果没有,请点击它。
- 点击其他任何窗口,确保当前窗口失去焦点
- 即使此窗口没有焦点,按钮仍然保持蓝色的动画效果!
按钮“脉动”动画中不存在标准的Java大号& F.
备注东西,当该按钮不再默认按钮(删除代码中的相应的行),则窗口失去焦点并且没有任何动画时,按钮将变为灰色。
我给你的问题是:这被认为是一个错误?因为当窗口被隐藏在另一个窗口后面时,这使得EDT保持干劲,而不是闲置(我做了一些分析)。事实上,最令我困扰的是:隐藏窗户并不会让美国东部时间闲置。
没问题,在WinXp上测试过, 7,8用Java编译6/7 – mKorbel 2013-03-21 13:20:19
@mKorbel在WinXP下你的外观和感觉在聚焦按钮上有那种发光/脉动动画吗? – Timmos 2013-03-21 13:21:53
和JButton可以在focusLost上使用Win8/Java 7中的鼠标悬停功能(另一个窗口的焦点在操作系统中) – mKorbel 2013-03-21 13:22:19