| | |
| | | private void initializeUI() { |
| | | setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); |
| | | |
| | | // 创建主内容面板 |
| | | // 创建主内容面板 |
| | | JPanel contentPanel = new JPanel(); |
| | | contentPanel.setLayout(new BoxLayout(contentPanel, BoxLayout.Y_AXIS)); |
| | | |
| | | // 添加顶部间距 - 这是关键修改 |
| | | // 添加顶部间距 - 这是关键修改 |
| | | contentPanel.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0)); |
| | | |
| | | // 参数配置 |
| | | // 参数配置 |
| | | String[][] parameters = { |
| | | {"02.", "device.version"}, |
| | | {"04.", "device.id"}, |
| | |
| | | addParameterField(contentPanel, parameters[i][0], parameters[i][1], i); |
| | | } |
| | | |
| | | // 添加内容面板到主面板,不添加额外间距 |
| | | // 添加内容面板到主面板,不添加额外间距 |
| | | add(contentPanel); |
| | | } |
| | | |
| | |
| | | textFields[index] = new JTextField(); |
| | | textFields[index].setPreferredSize(new Dimension(120, 25)); |
| | | |
| | | // 如果是设备版本(地址为02.),设置为不可编辑 |
| | | // 如果是设备版本(地址为02.),设置为不可编辑 |
| | | if ("02.".equals(address)) { |
| | | textFields[index].setEditable(false); |
| | | // 可选:设置背景色以表示不可编辑状态 |
| | | // 可选:设置背景色以表示不可编辑状态 |
| | | textFields[index].setBackground(Color.LIGHT_GRAY); |
| | | } |
| | | |
| | | paramPanel.add(labels[index]); |
| | | paramPanel.add(textFields[index]); |
| | | |
| | | // 设置高度 |
| | | // 设置高度 |
| | | paramPanel.setMaximumSize(new Dimension(Integer.MAX_VALUE, 35)); |
| | | panel.add(paramPanel); |
| | | } |
| | | |
| | | /** |
| | | * 更新字段值 - 新增方法 |
| | | * @param result 解析结果对象 |
| | | * 更新字段值 - 新增方法 |
| | | * @param result 解析结果对象 |
| | | */ |
| | | public void updateFields(DellTag55AA03.ParseResult result) { |
| | | if (result == null) { |
| | |
| | | return; |
| | | } |
| | | |
| | | // 根据参数顺序更新对应的文本框 |
| | | // 根据参数顺序更新对应的文本框 |
| | | try { |
| | | if (textFields.length > 0 && result.dizhi0x2 != null) { |
| | | textFields[0].setText(result.dizhi0x2); // 设备版本 |
| | | textFields[0].setText(result.dizhi0x2); // 设备版本 |
| | | |
| | | } |
| | | |
| | | if (textFields.length > 1 && result.dizhi0x4 != null) { |
| | | textFields[1].setText(result.dizhi0x4); // 设备ID |
| | | textFields[1].setText(result.dizhi0x4); // 设备ID |
| | | |
| | | } |
| | | |
| | | if (textFields.length > 2 && result.dizhi0x6 != null) { |
| | | textFields[2].setText(String.valueOf(result.dizhi0x6)); // 通信频率 |
| | | textFields[2].setText(String.valueOf(result.dizhi0x6)); // 通信频率 |
| | | |
| | | } |
| | | |
| | | if (textFields.length > 3 && result.dizhi0x8 != null) { |
| | | textFields[3].setText(String.valueOf(result.dizhi0x8)); // 每次通信基站数 |
| | | textFields[3].setText(String.valueOf(result.dizhi0x8)); // 每次通信基站数 |
| | | |
| | | } |
| | | |
| | | if (textFields.length > 4 && result.dizhi0xA != null) { |
| | | textFields[4].setText(String.valueOf(result.dizhi0xA)); // 小组编号 |
| | | textFields[4].setText(String.valueOf(result.dizhi0xA)); // 小组编号 |
| | | |
| | | } |
| | | |
| | | if (textFields.length > 5) { |
| | | textFields[5].setText(String.valueOf(result.dizhi0xC)); // 距离校准 |
| | | textFields[5].setText(String.valueOf(result.dizhi0xC)); // 距离校准 |
| | | |
| | | } |
| | | |
| | | if (textFields.length > 6 && result.dizhi0xE != null) { |
| | | textFields[6].setText(String.valueOf(result.dizhi0xE)); // 设备类型 |
| | | textFields[6].setText(String.valueOf(result.dizhi0xE)); // 设备类型 |
| | | |
| | | } |
| | | |
| | | if (textFields.length > 7 && result.dizhi0x10 != null) { |
| | | textFields[7].setText(String.valueOf(result.dizhi0x10)); // 基站主动测距 |
| | | textFields[7].setText(String.valueOf(result.dizhi0x10)); // 基站主动测距 |
| | | |
| | | } |
| | | |
| | | if (textFields.length > 8 && result.dizhi0x12 != null) { |
| | | textFields[8].setText(String.valueOf(result.dizhi0x12)); // 报警设备 |
| | | textFields[8].setText(String.valueOf(result.dizhi0x12)); // 报警设备 |
| | | |
| | | } |
| | | |
| | | if (textFields.length > 9 && result.dizhi0x1A != null) { |
| | | textFields[9].setText(String.valueOf(result.dizhi0x1A)); // 配对ID |
| | | textFields[9].setText(String.valueOf(result.dizhi0x1A)); // 配对ID |
| | | |
| | | } |
| | | |
| | | if (textFields.length > 10 && result.dizhi0x1C != null) { |
| | | textFields[10].setText(String.valueOf(result.dizhi0x1C)); // 心跳包/UWB开关状态 |
| | | textFields[10].setText(String.valueOf(result.dizhi0x1C)); // 心跳包/UWB开关状态 |
| | | |
| | | } |
| | | |
| | | if (textFields.length > 11 && result.dizhi0x1E != null) { |
| | | textFields[11].setText(String.valueOf(result.dizhi0x1E)); // MODBUSģʽ |
| | | textFields[11].setText(String.valueOf(result.dizhi0x1E)); // MODBUS模式 |
| | | |
| | | } |
| | | |
| | | if (textFields.length > 12 && result.dizhi0x36 != null) { |
| | | textFields[12].setText(String.valueOf(result.dizhi0x36)); // 功率 |
| | | textFields[12].setText(String.valueOf(result.dizhi0x36)); // 功率 |
| | | |
| | | } |
| | | |
| | |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | // 重新验证和重绘面板 |
| | | // 重新验证和重绘面板 |
| | | revalidate(); |
| | | repaint(); |
| | | } |
| | | |
| | | public void updateLanguage() { |
| | | // 更新标签文本 |
| | | // 更新标签文本 |
| | | String[][] parameters = { |
| | | {"02.", "device.version"}, |
| | | {"04.", "device.id"}, |
| | |
| | | repaint(); |
| | | } |
| | | |
| | | // 新增:获取文本框数组的方法 |
| | | // 新增:获取文本框数组的方法 |
| | | public JTextField[] getTextFields() { |
| | | return textFields; |
| | | } |
| | |
| | | |
| | | public String getdizhi0x2() { |
| | | return textFields.length ==1 ? textFields[0].getText() : ""; |
| | | }//版本号 |
| | | }//版本号 |
| | | public String getdizhi0x4() { |
| | | return textFields.length > 1 ? textFields[1].getText() : ""; |
| | | }//模块编号 |
| | | }//模块编号 |
| | | public String getdizhi0x6() { |
| | | return textFields.length > 2 ? textFields[2].getText() : ""; |
| | | }//通信频率 |
| | | }//通信频率 |
| | | public String getdizhi0x8() { |
| | | return textFields.length > 3 ? textFields[3].getText() : ""; |
| | | }//最多通信基站 |
| | | }//最多通信基站 |
| | | public String getdizhi0xA() { |
| | | return textFields.length > 4 ? textFields[4].getText() : ""; |
| | | }//最少通信基站、小组编号 |
| | | }//最少通信基站、小组编号 |
| | | public String getdizhi0xC() { |
| | | return textFields.length > 5 ? textFields[5].getText() : ""; |
| | | }//校准距离 |
| | | }//校准距离 |
| | | public String getdizhi0xE() { |
| | | return textFields.length > 6 ? textFields[6].getText() : ""; |
| | | }//模块类型 |
| | | }//模块类型 |
| | | public String getdizhi0x10() { |
| | | return textFields.length > 7 ? textFields[7].getText() : ""; |
| | | }//基站主动测距 |
| | | }//基站主动测距 |
| | | public String getdizhi0x12() { |
| | | return textFields.length > 8 ? textFields[8].getText() : ""; |
| | | }//报警设备 |
| | | }//报警设备 |
| | | |
| | | public String getdizhi0x1A() { |
| | | return textFields.length > 9 ? textFields[9].getText() : ""; |
| | | }//配对ID |
| | | }//配对ID |
| | | public String getdizhi0x1C() { |
| | | return textFields.length > 10 ? textFields[10].getText() : ""; |
| | | }//心跳包、UWB开关状态 |
| | | }//心跳包、UWB开关状态 |
| | | public String getdizhi0x1E() { |
| | | return textFields.length > 11 ? textFields[11].getText() : ""; |
| | | }//MODBUSģʽ |
| | | }//MODBUS模式 |
| | | public String getdizhi0x36() { |
| | | return textFields.length > 12 ? textFields[12].getText() : ""; |
| | | }//功率 |
| | | }//功率 |
| | | |
| | | |
| | | } |