| | |
| | | mainPanel.setBackground(Color.WHITE); |
| | | mainPanel.setBorder(BorderFactory.createEmptyBorder(15, 15, 10, 15)); |
| | | |
| | | // 计算图例内容面板的宽度(用于设置图标尺寸) |
| | | // 图例对话框宽度 = DIALOG_WIDTH * 0.8 |
| | | // 主面板左右边框各15像素,图例内容面板左右内边距各10像素 |
| | | int adjustedWidth = (int) Math.round(UIConfig.DIALOG_WIDTH * 0.8); |
| | | int iconSize = adjustedWidth - 30 - 20; // 减去主面板左右边框(15*2)和图例内容面板左右内边距(10*2) |
| | | |
| | | // 创建割草机图标面板 |
| | | JPanel iconPanel = new JPanel(new BorderLayout()); |
| | | iconPanel.setBackground(Color.WHITE); |
| | | iconPanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0)); // 底部间距10像素 |
| | | |
| | | JLabel gecaojiLabel = new JLabel(); |
| | | gecaojiLabel.setHorizontalAlignment(SwingConstants.CENTER); |
| | | ImageIcon gecaojiIcon = loadIcon("image/gecaoji.png", iconSize, iconSize); |
| | | if (gecaojiIcon != null) { |
| | | gecaojiLabel.setIcon(gecaojiIcon); |
| | | } else { |
| | | // 如果图标加载失败,显示占位文本 |
| | | gecaojiLabel.setText("割草机图标"); |
| | | gecaojiLabel.setFont(new Font("微软雅黑", Font.PLAIN, 12)); |
| | | } |
| | | iconPanel.add(gecaojiLabel, BorderLayout.CENTER); |
| | | |
| | | // 图例内容面板 - 直接添加,不使用滚动条 |
| | | JPanel contentPanel = new JPanel(); |
| | | contentPanel.setLayout(new BoxLayout(contentPanel, BoxLayout.Y_AXIS)); |
| | |
| | | contentPanel.remove(contentPanel.getComponentCount() - 1); |
| | | } |
| | | |
| | | // 添加图标面板和图例内容面板 |
| | | mainPanel.add(iconPanel, BorderLayout.NORTH); |
| | | // 添加图例内容面板 |
| | | mainPanel.add(contentPanel, BorderLayout.CENTER); |
| | | |
| | | getContentPane().add(mainPanel); |