JAVA如何让窗体置于所有应用前面?
我做了一个swing窗体界面,想让他打开后,置于所有应用前面。就像我打开了他又打开了QQ浏览器,他在屏幕中就是一直在QQ浏览器前面,只有最小化,这个可以设置吗?我用.se...
我做了一个swing窗体界面,想让他打开后,置于所有应用前面。就像我打开了他又打开了QQ浏览器,他在屏幕中就是一直在QQ浏览器前面,只有最小化,这个可以设置吗?
我用.setAlwaysOnTop不仅达不到我的效果,连JOptionPane消息提示框都挑不出来了。只有任务管理器结束=-= 展开
我用.setAlwaysOnTop不仅达不到我的效果,连JOptionPane消息提示框都挑不出来了。只有任务管理器结束=-= 展开
1个回答
展开全部
可以使用setAlwaysOnTop(true);实现置顶。
可以实现只能最小化,不能缩放,通过代码setResizable(false);//禁止缩放来实现
JOptionPane消息提示框的,如果在窗口置顶的情况下,还能弹出来看到,那么就需要设置一个参数,来指定他弹出的父组件。
比如:JOptionPane.showMessageDialog(组件, "消息.", "标题",JOptionPane.WARNING_MESSAGE);
这时候的第一个组件参数,不能为null。否则会被置顶的窗口挡住
4.完整代码
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyAWTDemo extends JFrame{
public MyAWTDemo() {
Button bt = new Button("=点击按钮,弹出消息框=");
bt.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(bt.getParent(), "消息:java swing...", "消息窗",JOptionPane.WARNING_MESSAGE);
//如果第一个参数是null,那么弹出的消息窗口,很可能就被置顶的窗口JFrame挡住了
//第一个窗口bt.getParent()父组件就是本窗口了,也可以写bt那么父组件就是按钮,都可以显示出来,
//但位置不同。bt.getParent()位于界面中央,更美观一点吧
}
});
add(bt);
setLayout(new FlowLayout());
setTitle("窗口标题");
setSize(300, 200);
setLocationRelativeTo(null);//窗口居中
setAlwaysOnTop(true);//置顶
setResizable(false);//禁止缩放
setDefaultCloseOperation(EXIT_ON_CLOSE);//点击关闭按钮,退出jvm虚拟机
setVisible(true);
}
public static void main(String[] args) {
new MyAWTDemo();
}
}
5.效果图
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询