模态框的学习
假设存在这样场景:我登录lol页面的时候,一区人很多,我连着点登陆,客户端没给我反应。竟然没反应,然后我就疯狂点登陆,假设lol服务器无法处理这种重复命令,那么lol的服务器反应过来的时候,可能我已经点了n次登陆了,那么服务器就要处理很多没有意义的登陆指令。这是一个假设,是为了说明,用户操作的不当,会造成服务器雪上加霜的情况。
所以我们就要设计一个东西,来阻止用户的无理取闹,我的方式就是用模态框,当你进行点击登陆操作后,弹出一个模态框,对于模态框外面的界面,你不能在点了!模态框显示正在帮你处理,你别着急,这就有效的处理了刚才假设的情况。
下面贴一个模态框的代码:
继承自JDialog 类,当创建这个对象时,当传入参数是true时,表示这是一个模态框。
public class MDialog extends JDialog {
private static final long serialVersionUID = -3666711423943333589L;
public MDialog(Frame owner, boolean modal) {
super(owner, modal);
}
public MDialog(Dialog owner, boolean modal) {
super(owner, modal);
}
public MDialog(Frame owner, String title, boolean modal) {
super(owner, title, modal);
}
public MDialog(Dialog owner, String title, boolean modal) {
super(owner, title, modal);
}
public MDialog setCaption(String context) {
Font font = new Font("宋体", Font.BOLD, 16);
int width = (context.length() + 4) * font.getSize();
int height = 5 * font.getSize();
setSize(width, height);
setLocationRelativeTo(getOwner());
setLayout(null);
setUndecorated(true);
JPanel jpnlMessage = new JPanel();
jpnlMessage.setSize(width, height);
jpnlMessage.setLayout(new BorderLayout());
jpnlMessage.setBackground(Color.lightGray);
jpnlMessage.setBorder(</