コード例 #1
0
  /**
   * run will be exicuted when the thread is called, and will connect to the server and start
   * communicating with it.
   */
  public void run() {
    WaitForConnection wfc = new WaitForConnection("Waiting For Connection");
    m_OldWindow.setEnabled(false);
    try {
      m_Socket = new Socket(m_IP, m_Port);

      // System.out.println("Connecting to ChatService...");
      m_ChatSocket = new Socket(m_IP, m_Port);
      // System.out.println("\nConnected to ChatService...");

      wfc.updateMessage("Waiting For Other Players");

      // System.out.println("Getting OutputStream Stream From server...");
      toServer = new ObjectOutputStream(m_Socket.getOutputStream());
      toChatServer = new ObjectOutputStream(m_ChatSocket.getOutputStream());
      toChatServer.flush();

      // System.out.println("Getting Input Stream From server...");
      fromServer = new ObjectInputStream(m_Socket.getInputStream());
      fromChatServer = new ObjectInputStream(m_ChatSocket.getInputStream());

      m_ChatService = new ChatService();
      m_ChatServiceThread = new Thread(m_ChatService);
      m_ChatServiceThread.start();

      m_MultiPlayerMenu.startGame();
      wfc.dispose();
      m_OldWindow.dispose();
    } catch (java.net.ConnectException e) {
      wfc.dispose();
      MenuWindow menu = new MenuWindow(new JFrame(""));
      JOptionPane.showMessageDialog(menu.getMainFrame(), "Error Connection refused");
      m_OldWindow.setEnabled(true);
    } catch (IOException ex) {
      System.err.print(ex);
    }
  }
コード例 #2
0
ファイル: BoardPanel.java プロジェクト: Toshu/RoBoardGames
  public void finishedSelectingUnits(TilePanel tilePanel, List<Unit> chosenUnits) {
    UnitActionDetector unitActionDetector =
        new UnitActionDetector(selectedPanel, selectedUnit, tilePanel, chosenUnits);

    if (unitActionDetector.isSelectingUnit()) {
      selectedPanel = tilePanel;
      selectedPanel.addTileStateFromKey(selectedStateKey);
      repaintPanels(selectedPanel);
      selectedUnit = getUnit(chosenUnits);
      selectValidMovements(selectedPanel.getTile(), selectedUnit);
    } else if (unitActionDetector.isDeselectingUnit()) {
      selectedPanel.removeTileStateFromKey(selectedStateKey);
      deselectValidMovements(selectedPanel.getTile(), selectedUnit);
      repaintPanels(selectedPanel);
      selectedPanel = null;
      selectedUnit = null;
    } else if (unitActionDetector.isMovingUnit()) {
      Position from = selectedPanel.getTile().getPosition();
      Position to = tilePanel.getTile().getPosition();
      if (movementStrategy.isValidMove(selectedUnit, from, to, unitMap)) {
        deselectValidMovements(selectedPanel.getTile(), selectedUnit);
        selectedPanel.removeTileStateFromKey(selectedStateKey);

        List<Unit> units = unitMap.get(to);
        if (units != null && !units.isEmpty()) {
          Unit defending = units.get(0);
          BattleStrategy strategy =
              battleStrategyConfiguration.getBattleStrategy(
                  selectedUnit, defending, selectedPanel.getTile(), tilePanel.getTile());
          Unit winner = strategy.getWinner(selectedUnit, defending);
          if (winner.equals(selectedUnit)) {
            units.remove(defending);
          }
        }
        board.move(selectedUnit, from, to);
        repaintPanels(selectedPanel);
        selectedPanel = null;
        selectedUnit = null;
      }
    }
    frame.setEnabled(true);
    resetPositions();
  }
コード例 #3
0
  // Обработка событий
  @Override
  public void actionPerformed(ActionEvent e) {
    String command = e.getActionCommand();

    switch (command) {
      case "Добавить материал":
        // Открываем новое окно
        int row = prepModel.material.size(); // Номер добавляемой в будущем строки
        frame.setEnabled(false); // Делаем окно неактивным
        AddMaterial addMt = new AddMaterial();
        addMt.setVisible(true);
        System.out.println("Добавлена\n");
        break;
      case "Удалить материалы":
        Iterator<Material> iter = prepModel.material.iterator(); // Итератор
        ArrayList<Material> selectItems = new ArrayList<Material>(); // Список выделенных элементов
        // Есть ли элементы в таблице?
        if (iter.hasNext()) {
          // Кидаем в список выделенные элементы
          while (iter.hasNext()) {
            Material next = iter.next();
            if (next.checkBox == Boolean.TRUE) {
              selectItems.add(next);
            }
          }

          // Есть ли выделенные элементы?
          if (!selectItems.isEmpty()) {
            // подтверждение удаления
            int res =
                JOptionPane.showConfirmDialog(
                    null,
                    "Вы действительно хотите удалить выделенные элементы?",
                    "Question",
                    JOptionPane.YES_NO_OPTION);
            if (res == JOptionPane.YES_OPTION) {
              // Удаление из таблицы
              for (int i = 0; i < selectItems.size(); i++) {
                prepModel.material.remove(selectItems.get(i));
              }
              prepModel.updateData(); // Обновление данных
              System.out.println("Удалены");
              JOptionPane.showMessageDialog(
                  null, "Удаление выполнено успешно! Сохраните результат!");
            }
          } else {
            JOptionPane.showMessageDialog(null, "Нет выделенных элементов для удаления.");
          }

        } else {
          System.out.println("Нет элементов для удаления\n");
        }
        break;
      case "Сохранить изменения":
        // Проверка, добавдлены ли материалы? (Для установки даты)
        Date dMat = null;
        if (!proj.listMaterial.equals(prepModel.material)) {
          dMat = new Date();
        }
        // Обновление записей в модели таблицы родительского окна
        MainWindow.myModel.pr.set(
            this.row,
            new Project(
                tfName.getText(),
                tfPath.getText(),
                tfDebit.getText(),
                proj.date,
                dMat,
                prepModel.material));

        // MessageBox
        JOptionPane.showMessageDialog(
            null, "Сохраненение выполнено успешно!", "Сохранено", JOptionPane.INFORMATION_MESSAGE);
        MainWindow.myModel.updateData(); // обновляем таблицу родительского окна

        // Закрываем окно после сохранения
        frame.setVisible(false);
        MainWindow.frame.setEnabled(true);
        MainWindow.frame.toFront();
        break;
      default:
        System.err.println("Неизвестная команда");
    }
  }