public static void showPEInfoBox(JFrame p, String key, String type, BoxClosed2 fn) {
        commonSettings();

        p.setVisible(false);

        dialog.setTitle("Info");

        JTextField jKey = new JTextField(9);
        jKey.setText(key);
        TypeComboBox jType = new TypeComboBox(p, (nowSelected) -> {
            dialog.dispose();
            if (null != fn) {
                fn.boxClosed(jKey.getText(), nowSelected);
            }
            p.setVisible(true);
        });
        jType.setSelectedItem(type);
        
        jKey.addKeyListener(new KeyAdapter() {

            @Override
            public void keyReleased(KeyEvent e) {
                char c = e.getKeyChar();
                if (KeyEvent.VK_ENTER != c) {
                    return;
                }
                
                dialog.dispose();
                if (null != fn) {
                    fn.boxClosed(jKey.getText(), (String) jType.getSelectedItem());
                }
                p.setVisible(true);
            }
            
        });

        JPanel content = new JPanel(new FlowLayout());
        content.setPreferredSize(new Dimension(300, 100));
        content.add(new JLabel("键"));
        content.add(jKey);
        content.add(new JLabel("类型"));
        content.add(jType);
        dialog.setContentPane(content);

        wa = new WindowAdapter() {

            @Override
            public void windowClosed(WindowEvent e) {
                if (null != fn) {
                    fn.boxClosed(jKey.getText(), (String) jType.getSelectedItem());
                }
                p.setVisible(true);
            }

        };

        commonShow();
    }