Новые книги

В книге Марка Тангейта – известного журналиста, автора ряда популярных книг о рекламе, моде и брендинге – подробно и последовательно представлена история рекламы как бизнес-индустрии и как творческого процесса. Описаны истории ведущих мировых рекламных агентств, самые известные рекламные кампании, оказавшие влияние на развитие этого «креативного бизнеса». Автор нарисовал живые портреты революционеров, дельцов, хулиганов и перфекционистов – всех тех неординарных личностей, благодаря которым «манипуляция сознанием» и сегодня привлекает множество харизматичных и ярких людей, сочетающих в себе креативность и предпринимательский талант. Книга является полноценным учебником по рекламе и вместе с тем лишена громоздкости, присущей энциклопедиям. Это комплексный, живой и увлекательный обзор рекламной индустрии в ее историческом развитии. Книга предназначена для топ-менеджеров и сотрудников рекламных и PR-агентств, преподавателей и студентов, специализирующихся на изучении рекламного дела, а также для всех, кто интересуется этой интереснейшей сферой человеческой деятельности.
«Как пасти котов» – это книга о лидерстве и руководстве, о том, как первое совмещать со вторым. Это, если хотите, словарь трудных случаев управления IT-проектами. Программист подобен кошке, которая гуляет сама по себе. Так уж исторически сложилось. Именно поэтому так непросто быть руководителем команды разработчиков. Даже если вы еще месяц назад были блестящим и дисциплинированным программистом и вдруг оказались в роли менеджера, вряд ли вы знаете, с чего надо начать, какой выбрать стиль руководства, как нанимать и увольнять сотрудников, проводить совещания, добиваться своевременного выполнения задач. В таком случае без этой книги вам не обойтись. А может быть, вы – опытный менеджер, желающий пересмотреть свои принципы лидерства? Тогда, опять же, эта книга для вас. Вне зависимости от возраста, пола и социального статуса, она поможет вам укрепить свои позиции в роли лидера программистов. Материал изложен довольно компактно и легко укладывается в голове. Стоя в книжном магазине и раздумывая, что же купить, задайте себе один простой вопрос: «Нужно ли мне совершенствовать свои лидерские навыки?» Полагаю, вы ответите: «Да», – а значит, моя книга окажется для вас небесполезной.

Исходный текст приложения MenuApp

Исходный текст приложения MenuApp

Оглавление

Окна и диалоговые панели
Окна класса Frame
Меню MenuBar
Класс Menu
Класс MenuItem
Диалоговые панели
Приложение MenuApp
Исходный текст
Описание текста

Исходный текст приложения MenuApp представлен в листинге 1.

Листинг 1. Файл MenuApp.java

import java.awt.*;
public class MenuApp
{
  public static void 
  main(String args[])
  {
    MainFrameWnd frame = 
      new MainFrameWnd("MenuApp");
    frame.setSize(
    frame.getInsets().left +
      frame.getInsets().right  + 320,
      frame.getInsets().top  +
      frame.getInsets().bottom + 240); 
    frame.show();
  }
}
class MainFrameWnd extends Frame
{
  MenuBar mbMainMenuBar;
  Menu mnFile;
  Menu mnHelp;
  public MainFrameWnd(String sTitle)
  {
    super(sTitle);    
    setSize(400, 200);
    setBackground(Color.yellow);
    setForeground(Color.black);
    setLayout(new FlowLayout());
    mbMainMenuBar = new MenuBar();
    mnFile = new Menu("File");
    mnFile.add("New");
    mnFile.add("-");
    mnFile.add("Exit");
    mnHelp = new Menu("Help"); 
    mnHelp.add("Content");
    mnHelp.add("-");
    mnHelp.add("About");
    mbMainMenuBar.add(mnFile);
    mbMainMenuBar.add(mnHelp);
    setMenuBar(mbMainMenuBar);
  }
  public void paint(Graphics g)
  {
    g.setFont(new Font(
      "Helvetica", Font.PLAIN, 12));
    g.drawString("Frame window", 10, 70);
    super.paint(g);
  }
  public boolean handleEvent(Event evt)
  {
    if(evt.id == Event.WINDOW_DESTROY)
    {
      setVisible(false);
      System.exit(0);
      return true;
    }
    else
      return super.handleEvent(evt);
  }
  public boolean action(Event evt, Object obj)
  {
    MenuItem mnItem;
    if(evt.target instanceof MenuItem)
    {
      mnItem = (MenuItem)evt.target;
      if(obj.equals("Exit"))
      {
        System.exit(0);
      }
      else if(obj.equals("New"))
      {
        MessageBox mbox;
        mbox = new MessageBox(
          "Item New selected",
          this, "Dialog from Frame", true);
        mbox.show();
      }
      else if(obj.equals("Content"))
      {
        MessageBox mbox;
        mbox = new MessageBox(
          "Item Content selected",
          this, "Dialog from Frame", true);
        mbox.show();
      }
      else if(obj.equals("About"))
      {
        MessageBox mbox;
        mbox = new MessageBox(
          "Item About selected",
          this, "Dialog from Frame", true);
        mbox.show();
      }
      else
        return false;
      return true;
    }
    return false;
  }
}
class MessageBox extends Dialog
{
  Label lbMsg;
  Button btnOK;
  public MessageBox(String sMsg, 
    Frame  parent, String  sTitle,
    boolean  modal)
  {
    super(parent, sTitle, modal);
    resize(200, 100);
    setLayout(new GridLayout(2, 1));
    lbMsg = new Label(sMsg, Label.CENTER);
    add(lbMsg);
    btnOK = new Button("OK");
    add(btnOK);
  }
  public boolean handleEvent(Event evt)
  {
    if(evt.id == Event.WINDOW_DESTROY)
    {
      dispose();
      return true;
    }
    else
      return super.handleEvent(evt);
  }
  public boolean action(Event evt, Object obj)
  {
    Button btn;
    if(evt.target instanceof Button)
    {
      btn = (Button)evt.target;
      if(evt.target.equals(btnOK))
      {
        dispose();
      }
      else
        return false;
      return true;
    }
    return false;
  }
}