package dell_targets; import javax.swing.*; import javax.swing.border.EmptyBorder; import java.awt.*; import java.util.ResourceBundle; import targets.LocationTag; public class TagEditDialog extends JDialog { /** * */ private static final long serialVersionUID = 1L; private ResourceBundle messages; private JTextField idField; private JTextField nameField; private JTextField xField; private JTextField yField; private JTextField zField; private JTextField floorField; private boolean confirmed = false; private LocationTag tag; // ÓÃÓڱ༭µÄ±êÇ© public TagEditDialog(Frame parent, ResourceBundle messages, boolean isAddDialog, LocationTag existingTag) { super(parent, isAddDialog ? messages.getString("ADD_TAG") : messages.getString("EDIT_TAG"), true); this.messages = messages; this.tag = existingTag; setLayout(new BorderLayout()); setSize(400, 300); setLocationRelativeTo(parent); JPanel formPanel = new JPanel(new GridLayout(7, 2, 5, 5)); formPanel.setBorder(new EmptyBorder(10, 10, 10, 10)); // É豸±àºÅ JLabel idLabel = new JLabel(getMessage("DEVICE_NUMBER") + ": *"); idField = new JTextField(); formPanel.add(idLabel); formPanel.add(idField); // É豸Ãû³Æ JLabel nameLabel = new JLabel(getMessage("DEVICE_NAME") + ": *"); nameField = new JTextField(); formPanel.add(nameLabel); formPanel.add(nameField); // X×ø±ê JLabel xLabel = new JLabel(getMessage("X_COORDINATE") + ":"); xField = new JTextField(); formPanel.add(xLabel); formPanel.add(xField); // Y×ø±ê JLabel yLabel = new JLabel(getMessage("Y_COORDINATE") + ":"); yField = new JTextField(); formPanel.add(yLabel); formPanel.add(yField); // Z×ø±ê JLabel zLabel = new JLabel(getMessage("Z_COORDINATE") + ":"); zField = new JTextField(); formPanel.add(zLabel); formPanel.add(zField); // Â¥²ã JLabel floorLabel = new JLabel(getMessage("FLOOR") + ":"); floorField = new JTextField(); formPanel.add(floorLabel); formPanel.add(floorField); add(formPanel, BorderLayout.CENTER); // Èç¹ûÊDZ༭¶Ô»°¿ò£¬Ìî³äÊý¾Ý if (!isAddDialog && existingTag != null) { idField.setText(existingTag.getDeviceNumber()); idField.setEditable(false); // ±à¼­Ê±É豸±àºÅ²»¿ÉÐÞ¸Ä nameField.setText(existingTag.getDeviceName()); xField.setText(existingTag.getXCoordinate()); yField.setText(existingTag.getYCoordinate()); zField.setText(existingTag.getZCoordinate()); floorField.setText(existingTag.getFloor()); } // ´´½¨°´Å¥Ãæ°å JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); JButton okButton = new JButton(getMessage("OK")); JButton cancelButton = new JButton(getMessage("CANCEL")); okButton.addActionListener(e -> { confirmed = true; dispose(); }); cancelButton.addActionListener(e -> dispose()); buttonPanel.add(okButton); buttonPanel.add(cancelButton); add(buttonPanel, BorderLayout.SOUTH); } public LocationTag getTag() { if (!confirmed) { return null; } LocationTag result = new LocationTag(); result.setDeviceNumber(idField.getText()); result.setDeviceName(nameField.getText()); result.setXCoordinate(xField.getText()); result.setYCoordinate(yField.getText()); result.setZCoordinate(zField.getText()); result.setFloor(floorField.getText()); return result; } public boolean isConfirmed() { return confirmed; } private String getMessage(String key) { try { return messages.getString(key); } catch (Exception e) { return "[" + key + "]"; } } }