java如何调windows框_java – JDialog.setAlwaysOnTop(true)将所有对话框带到Windows下的前面...
我創(chuàng)建了兩個對話框:
DialogA:setVisible(true)只調(diào)用一次.
DialogB:setVisible(true)和setAlwaysOnTop(true)每1.5秒調(diào)用一次
Windows:每次調(diào)用dialogB.setAlwaysOnTop(true)都會將dialogA和dialogB帶到前面.
OSX:每次調(diào)用dialogB.setAlwaysOnTop(true)只會將dialogB帶到前面. (預期行為)
測試用例(Windows):
1我從IDE啟動應用程序.
2我看到DialogA.
3我在IDE中單擊并且DialogA消失.
4一秒鐘后,DialogA和DialogB將出現(xiàn).
5我在IDE中單擊,DialogA和DialogB消失. GOTO 4
預期行為(OSX):
4.一秒鐘后,DialogB將出現(xiàn).
5.我在IDE中單擊并且DialogB消失. GOTO 4
題:
如何在Windows下獲得預期的行為?
import javax.swing.JDialog;
import javax.swing.JLabel;
public class JDialogSetAlwaysonTopTEST
{
public static void main(String[] p_Strings)
{
final JDialog dialogA = new JDialog();
dialogA.setLocation(0, 0);
dialogA.add(new JLabel("DialogA: Click on the overlapped window"));
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
dialogA.pack();
dialogA.setVisible(true);
}
});
try {Thread.sleep(3000);} catch (InterruptedException e){}
final JDialog dialogB = new JDialog();
dialogB.setLocation(70, 70);
dialogB.add(new JLabel("DialogB: Do you see DialogA?"));
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
dialogB.pack();
dialogB.setVisible(true);
}
});
while(true)
{
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
dialogB.setAlwaysOnTop(true); //prerequisite
dialogB.setVisible(true);
dialogB.setAlwaysOnTop(false); //prerequisite
}
});
try {Thread.sleep(1500);} catch (InterruptedException e){}
}
}
}
總結(jié)
以上是生活随笔為你收集整理的java如何调windows框_java – JDialog.setAlwaysOnTop(true)将所有对话框带到Windows下的前面...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: u盘软件怎么拷到电脑上 电脑如何安装U盘
- 下一篇: JAVA编程TXT文件_java读写tx