private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        // 追加一段协议内容
        String key = jTextField2.getText().trim();
        if (StringUtils.isEmpty(key)) {
            MessageBox.showConfirmBox(this, "Error", "键不能为空", null);
            return;
        }
        
        if (!StringUtils.isEnglish(key)) {
            MessageBox.showConfirmBox(this, "Error", "键必须由英文字母组成", null);
            return;
        }
        
        String type = ((String) jComboBox1.getEditor().getItem()).trim();
        if (StringUtils.isEmpty(type)) {
            MessageBox.showConfirmBox(this, "Error", "类型不能为空", null);
            return;
        }

        MutableComboBoxModel<String> model = (MutableComboBoxModel<String>) jComboBox1.getModel();
        model.addElement(type);

        jPanel1.add(new ProtocolElem(this, jTextField2.getText().trim(), ((String) jComboBox1.getSelectedItem()).trim()));
        this.paintComponents(this.getGraphics());
        Debugger.debug(() -> {
            Component[] comps = jPanel1.getComponents();
            System.out.println(String.format("p size: %d, [%d, %d]", comps.length, jPanel1.getWidth(), jPanel1.getHeight()));
            System.out.println("c0 type: " + (comps.length > 0 ? comps[0].getClass() : String.class).getName());
            System.out.println(String.format("c0 size: [%d, %d]", comps[0].getWidth(), comps[0].getHeight()));
        });
    }