3
我正在嘗試創建Java Swing對話框,但我不想讓對話框將焦點從當前的任何焦點移開。因此,例如,如果您正在編輯單詞文檔,而其他應用程序會創建對話框,則應該看到對話框,但單詞文檔應保持對焦狀態,以便您可以繼續進行編輯。停止新創建的對話框關注焦點
我在Mac OSX和Ubuntu 12.04上測試了以下代碼。在Mac上,代碼會創建不需要像我想要的焦點的對話框。在Ubuntu上,對話框是焦點,我無法在創建時鍵入。
我真的希望這不是操作系統特定的。有什麼方法可以實現我在所有平臺(或者至少Ubuntu)上所要做的事情?
import javax.swing.*;
import java.awt.Color;
import java.util.Random;
public class Focus {
private static Random r = new Random();
public static void main(String[] args) {
while(true) {
try {
Thread.sleep(500);
createObject(r.nextInt(1000), r.nextInt(600));
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void createObject(int x, int y) {
JDialog testDialog = new JDialog();
testDialog.setSize(50, 50);
testDialog.setLocation(x, y);
testDialog.setAlwaysOnTop(true);
testDialog.setUndecorated(true);
testDialog.setFocusable(false);
testDialog.setEnabled(false);
testDialog.setVisible(true);
}
}
我已經在Windows 7上運行你的代碼,它的工作原理是你想要的 - 而程序創建盒我可以輸入。 –
相同的Windows Vista :) – zibi