/* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this template */ package AirBomberPackage; import java.awt.*; import javax.swing.*; /** * * @author Андрей */ public class JFrameMapWithSetAirBombers extends javax.swing.JFrame { /** * Creates new form JFrameMapWithSetAirBombers */ public JFrameMapWithSetAirBombers() { initComponents(); } private MapWithSetAirBombersGeneric _mapAirBombersCollectionGeneric; /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { airBomberCanvas = new AirBomberPackage.CanvasMy(); comboBoxSelectorMap = new javax.swing.JComboBox<>(); buttonAddAirBomber = new javax.swing.JButton(); maskedTextBoxPosition = new javax.swing.JFormattedTextField(); buttonRemoveAirBomber = new javax.swing.JButton(); buttonShowStorage = new javax.swing.JButton(); buttonShowOnMap = new javax.swing.JButton(); leftButton = new javax.swing.JButton(); downButton = new javax.swing.JButton(); rightButton = new javax.swing.JButton(); upButton = new javax.swing.JButton(); jLabel1 = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); comboBoxSelectorMap.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Простая карта", "Городская карта", "Линейная карта" })); comboBoxSelectorMap.setSelectedIndex(-1); comboBoxSelectorMap.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent evt) { comboBoxSelectorMapItemStateChanged(evt); } }); buttonAddAirBomber.setText("Добавить бомбардировщик"); buttonAddAirBomber.setToolTipText(""); buttonAddAirBomber.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonAddAirBomberActionPerformed(evt); } }); try { maskedTextBoxPosition.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("##"))); } catch (java.text.ParseException ex) { ex.printStackTrace(); } buttonRemoveAirBomber.setText("Удалить бомбардировщик"); buttonRemoveAirBomber.setToolTipText(""); buttonRemoveAirBomber.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonRemoveAirBomberActionPerformed(evt); } }); buttonShowStorage.setText("Посмотреть хранилище"); buttonShowStorage.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonShowStorageActionPerformed(evt); } }); buttonShowOnMap.setText("Посмотреть карту"); buttonShowOnMap.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonShowOnMapActionPerformed(evt); } }); leftButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/AirBomberPackage/arrowLeft.png"))); // NOI18N leftButton.setMargin(new java.awt.Insets(0, 0, 0, 0)); leftButton.setMaximumSize(new java.awt.Dimension(30, 30)); leftButton.setMinimumSize(new java.awt.Dimension(30, 30)); leftButton.setName("buttonLeft"); // NOI18N leftButton.setPreferredSize(new java.awt.Dimension(30, 30)); leftButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { moveButtonActionPerformed(evt); } }); downButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/AirBomberPackage/arrowDown.png"))); // NOI18N downButton.setMaximumSize(new java.awt.Dimension(30, 30)); downButton.setMinimumSize(new java.awt.Dimension(30, 30)); downButton.setName("buttonDown"); // NOI18N downButton.setPreferredSize(new java.awt.Dimension(30, 30)); downButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { moveButtonActionPerformed(evt); } }); rightButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/AirBomberPackage/arrowRight.png"))); // NOI18N rightButton.setMaximumSize(new java.awt.Dimension(30, 30)); rightButton.setMinimumSize(new java.awt.Dimension(30, 30)); rightButton.setName("buttonRight"); // NOI18N rightButton.setPreferredSize(new java.awt.Dimension(30, 30)); rightButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { moveButtonActionPerformed(evt); } }); upButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/AirBomberPackage/arrowUp.png"))); // NOI18N upButton.setMaximumSize(new java.awt.Dimension(30, 30)); upButton.setMinimumSize(new java.awt.Dimension(30, 30)); upButton.setName("buttonUp"); // NOI18N upButton.setPreferredSize(new java.awt.Dimension(30, 30)); upButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { moveButtonActionPerformed(evt); } }); jLabel1.setText("Инструменты"); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(airBomberCanvas, javax.swing.GroupLayout.PREFERRED_SIZE, 664, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 25, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(comboBoxSelectorMap, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(buttonAddAirBomber, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(maskedTextBoxPosition) .addComponent(buttonRemoveAirBomber, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(buttonShowStorage, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(buttonShowOnMap, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addComponent(jLabel1)) .addGap(23, 23, 23)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addComponent(leftButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(upButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createSequentialGroup() .addComponent(downButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(rightButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGap(62, 62, 62)))) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(airBomberCanvas, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(layout.createSequentialGroup() .addGap(15, 15, 15) .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(comboBoxSelectorMap, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(60, 60, 60) .addComponent(buttonAddAirBomber) .addGap(38, 38, 38) .addComponent(maskedTextBoxPosition, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(buttonRemoveAirBomber) .addGap(96, 96, 96) .addComponent(buttonShowStorage) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 12, Short.MAX_VALUE) .addComponent(buttonShowOnMap) .addGap(108, 108, 108) .addComponent(upButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(downButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(leftButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(rightButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap()) ); pack(); }// //GEN-END:initComponents private void moveButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_moveButtonActionPerformed String name = ((JButton) evt.getSource()).getName(); Direction dir = Direction.NONE; switch (name) { case "buttonUp": dir = Direction.UP; break; case "buttonDown": dir = Direction.DOWN; break; case "buttonLeft": dir = Direction.LEFT; break; case "buttonRight": dir = Direction.RIGHT; break; } airBomberCanvas.getGraphics().drawImage(_mapAirBombersCollectionGeneric.MoveObject(dir), 0, 0, null); }//GEN-LAST:event_moveButtonActionPerformed private void comboBoxSelectorMapItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_comboBoxSelectorMapItemStateChanged AbstractMap map = null; switch (comboBoxSelectorMap.getSelectedIndex()) { case 0: map = new SimpleMap(); break; case 1: map = new CityMap(); break; case 2: map = new LineMap(); break; } if (map != null) { _mapAirBombersCollectionGeneric = new MapWithSetAirBombersGeneric( airBomberCanvas.getWidth(), airBomberCanvas.getHeight(), map); airBomberCanvas.getGraphics().drawImage(_mapAirBombersCollectionGeneric.ShowSet(), 0, 0, null); } else { _mapAirBombersCollectionGeneric = null; } }//GEN-LAST:event_comboBoxSelectorMapItemStateChanged private void buttonAddAirBomberActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonAddAirBomberActionPerformed if (_mapAirBombersCollectionGeneric == null) { return; } JFrameAirBomber form = new JFrameAirBomber(this); DrawingAirBomber selectedAirBomber = form.run(); if (selectedAirBomber != null) { DrawingObjectAirBomber objectAirBomber = new DrawingObjectAirBomber(selectedAirBomber); if (_mapAirBombersCollectionGeneric.add(objectAirBomber) != -1) { JOptionPane.showMessageDialog(this, "Объект добавлен"); airBomberCanvas.getGraphics().drawImage(_mapAirBombersCollectionGeneric.ShowSet(), 0, 0, null); } else { JOptionPane.showMessageDialog(this, "Не удалось добавить объект"); } } }//GEN-LAST:event_buttonAddAirBomberActionPerformed private void buttonRemoveAirBomberActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonRemoveAirBomberActionPerformed if (maskedTextBoxPosition.getText().isBlank() || maskedTextBoxPosition.getText().isEmpty()) { return; } var res = JOptionPane.showConfirmDialog((Component) this, (Object) "Удалить объект?", "Удаление", JOptionPane.OK_CANCEL_OPTION); if (res == JOptionPane.CANCEL_OPTION) { return; } int pos = Integer.parseInt(maskedTextBoxPosition.getText()); if (_mapAirBombersCollectionGeneric.remove(pos) != null) { JOptionPane.showMessageDialog(null,"Объект удален"); airBomberCanvas.getGraphics().drawImage(_mapAirBombersCollectionGeneric.ShowSet(), 0, 0, null); } else { JOptionPane.showMessageDialog(null,"Не удалось удалить объект!"); } }//GEN-LAST:event_buttonRemoveAirBomberActionPerformed private void buttonShowStorageActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonShowStorageActionPerformed if (_mapAirBombersCollectionGeneric == null) { return; } airBomberCanvas.getGraphics().drawImage(_mapAirBombersCollectionGeneric.ShowSet(), 0, 0, null); }//GEN-LAST:event_buttonShowStorageActionPerformed private void buttonShowOnMapActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonShowOnMapActionPerformed if (_mapAirBombersCollectionGeneric == null) { return; } airBomberCanvas.getGraphics().drawImage(_mapAirBombersCollectionGeneric.ShowOnMap(), 0, 0, null); }//GEN-LAST:event_buttonShowOnMapActionPerformed /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ // /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(JFrameMapWithSetAirBombers.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(JFrameMapWithSetAirBombers.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(JFrameMapWithSetAirBombers.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(JFrameMapWithSetAirBombers.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } // /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new JFrameMapWithSetAirBombers().setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private AirBomberPackage.CanvasMy airBomberCanvas; private javax.swing.JButton buttonAddAirBomber; private javax.swing.JButton buttonRemoveAirBomber; private javax.swing.JButton buttonShowOnMap; private javax.swing.JButton buttonShowStorage; private javax.swing.JComboBox comboBoxSelectorMap; private javax.swing.JButton downButton; private javax.swing.JLabel jLabel1; private javax.swing.JButton leftButton; private javax.swing.JFormattedTextField maskedTextBoxPosition; private javax.swing.JButton rightButton; private javax.swing.JButton upButton; // End of variables declaration//GEN-END:variables }