我正在使用辅助功能API来检测某个应用程序何时打开窗口,关闭窗口,何时移动窗口或调整窗口大小,或者进行主要和/或聚焦.但是,客户端应用程序似乎在没有触发Accessibility API通知的情况下将窗口移到前面.
我的应用程序如何检测另一个应用程序何时将窗口置于前面而不使其成为关键?
我希望找到适用于OS X 10.4和10.5的解决方案
更多信息:我现在正在使用这些声明.当用户手动选择窗口将其置于前面时,它们可以正常工作.但是,当应用程序本身将窗口移到前面时,它确实不起作用.
AXObserverAddNotification(observer, element, kAXMainWindowChangedNotification, 0);
AXObserverAddNotification(observer, element, kAXFocusedWindowChangedNotification, 0);
Run Code Online (Sandbox Code Playgroud) 在Mac上的Cocoa中,我想检测何时移动,调整大小或重新绘制属于另一个应用程序的窗口.我怎样才能做到这一点?
JDBC java.sql.Statement类有一个cancel()方法.这可以在另一个线程中调用以取消当前运行的语句.
如何使用Spring实现这一目标?我无法找到在运行查询时获取对语句的引用的方法.我也找不到类似取消的方法.
这是一些示例代码.想象一下这需要10秒才能执行,有时根据用户的要求,我想取消它:
final int i = simpleJdbcTemplate.queryForInt("select max(gameid) from game");
Run Code Online (Sandbox Code Playgroud)
我如何修改这个,所以我有一个java.sql.Statement对象的引用?
我创建了一个jComboBox,但它占用了帧的全宽.如何设置宽度固定.
是的borderlayout用于面板的框架和框布局.我在这里添加代码:
import javax.swing.*;
import java.awt.BorderLayout;
public class Window8 {
JFrame frame;
JPanel panel;
JComboBox combo;
public void go(){
String[] option = { "STUDENT", "TEACHER" };
combo.setPreferredSize(new Dimension(1,25));
combo = new JComboBox(option);
menu.setSelectedIndex(0);
frame = new JFrame("DELETION");
frame.setLocationRelativeTo(null);
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
panel = new JPanel();
panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));
frame.getContentPane().add(BorderLayout.NORTH,panel);
panel.add(combo);
}
Run Code Online (Sandbox Code Playgroud) 我有两个非负长.它们可能很大,接近Long.MAX_VALUE.我想从两个数字中计算一个百分比.
通常我会这样做:
long numerator = Long.MAX_VALUE / 3 * 2;
long denominator = Long.MAX_VALUE;
int percentage = (int) (numerator * 100 / denominator);
System.out.println("percentage = " + percentage);
Run Code Online (Sandbox Code Playgroud)
如果分子在Long.MAX_VALUE的两个数量级内,则这是不正确的.
什么是正确,简单,快速的方法?
我的应用程序使用Cocoa Framework Sparkle来部署更新.我通常不会部署我的软件的测试版,但对于我的下一次更新,我觉得我需要.我的问题是使用Sparkle部署beta的最佳编号策略是什么.对于测试我的测试版的任何人,当我发布下一个正式版时,我希望更新是无缝的,但对于其他用户,我希望整个系统完全不可见.我目前使用像1.2.3这样的编号系统来进行更新.
在覆盖文件中的数据之前,我想非常确定旧数据存储在磁盘上.它可能是一个非常大的文件(多GB),因此需要就地更新.通常写入将是2 MB或更大(我的计划是使用4 KB的块大小).
而不是(或除了)调用fsync(),我想保留(而不是覆盖)磁盘上的旧数据,直到文件系统写入新数据.我不想依赖fsync()的主要原因是:大多数硬盘都是关于做fsync的.
所以我正在寻找的是文件系统,操作系统(例如Windows),硬盘驱动器的典型最大延迟是什么,直到数据写入磁盘,而不使用fsync或类似的方法.如果可能,我想拥有真实世界的数字.我不是在寻找使用fsync的建议.
我知道没有100%可靠的方法来做到这一点,但我想更好地了解操作系统和文件系统在这方面的工作方式.
到目前为止我发现的是:30秒是/ proc/sys/vm/dirty_expire_centiseconds的默认值.然后" 脏页面被刷新(写入)到磁盘...(当)因为页面保持脏 " 已经过了太多时间 "(但是我找不到默认时间).所以对于Linux来说,40秒似乎是安全的.但这适用于所有文件系统/磁盘吗?那么Windows,Android等等呢?我想得到一个适用于所有常见操作系统/文件系统/磁盘类型的答案,包括Windows,Android,常规硬盘,SSD等.
在Java中,我有一个可能有100,000个元素的SortedSet.我想高效优雅地获得最后25个元素.我有点不解.
为了获得前 25个,我会迭代并在25个元素后停止.但我不知道如何以相反的顺序迭代.有任何想法吗?
SortedSet<Integer> summaries = getSortedSet();
// what goes here :-(
Run Code Online (Sandbox Code Playgroud) 我在组件上有一个Java MouseListener来检测鼠标按下.如何判断鼠标按哪个显示器?
@Override
public void mousePressed(MouseEvent e) {
// I want to make something happen on the monitor the user clicked in
}
Run Code Online (Sandbox Code Playgroud)
我想要实现的效果是:当用户在我的应用程序中按下鼠标按钮时,弹出窗口会显示一些信息,直到鼠标被释放.我想确保此窗口位于用户单击的位置,但我需要调整当前屏幕上的窗口位置,以便整个窗口可见.
我需要找到一种在java中并行执行任务(依赖和独立)的方法.
我检查了java.util.concurrent Future和Fork/Join,但看起来我们无法向Task添加依赖项.
任何人都可以指出我更正Java API.
java ×6
cocoa ×3
swing ×2
beta ×1
dimensions ×1
file ×1
file-io ×1
filesystems ×1
frameworks ×1
jcombobox ×1
jdbctemplate ×1
macos ×1
mouseevent ×1
objective-c ×1
sortedset ×1
spring ×1