我一直在使用此代码来实现Popup
JDialog
种类,就像您的防病毒扫描系统或更新自身时所看到的那样:
import java.awt.*;
import javax.swing.JDialog;
import javax.swing.JLabel;
public class PopupDialog extends JDialog {
public PopupDialog() throws HeadlessException {
createUI();
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
PopupDialog popupDialog = new PopupDialog();
popupDialog.setVisible(true);
}
});
}
private void createUI() {
setTitle("Popup Dialog");
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
addComponentsToFrame();
//This call will give screens viable area, which takes into account the taskbar, which could be at the bottom, top,left or right of the screen.
Rectangle maxBounds = GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds();
//get screen size
int sWidth = maxBounds.width, sHeight = maxBounds.height;
setSize(275, 225);//set frame size
Dimension appDim = getSize();
//get app size
int aWidth = appDim.width, aHeight = appDim.height;
//set location like a tooltip would be except its a custom dialog like an AV
setLocation(sWidth - aWidth, (sHeight - aHeight));
}
private void addComponentsToFrame() {
JLabel label = new JLabel("Popup Dialog");
getContentPane().add(label, BorderLayout.CENTER);
}
}
但我的问题是:java中是否有任何类或包可以为我执行此操作?如果不是,我将如何从任务栏(或屏幕外)向slide
提升JDialog?或以某种方式变得可见,就像来自系统托盘的ToolTip
Popup一样。感谢。
编辑我想使用JDialog或Frame的原因是因为我希望能够使用setUndecorated(true);
完全设置外观弹出窗口并添加自定义退出图标,背景等
答案 0 :(得分:3)
答案 1 :(得分:1)
首先,您可以使您的框架始终位于顶部,这将确保始终可见。接下来,您可以将框架放在屏幕底部并以编程方式向上滑动。即使在较旧的XP机器上,这也应该相当顺畅。没有标准的Java API可以做到这一点,但你可以很容易地自己做。另一个选择而不是滑动是使窗口完全透明并淡入其中。这个API是在最近(最近2年)Java 6更新中添加的,所以它应该随处可用。