Дом Личные финансы Как создавать внутренние классы в Java - манекены

Как создавать внутренние классы в Java - манекены

Видео: Уроки Java для начинающих | #13 - Создание класса и объекта 2024

Видео: Уроки Java для начинающих | #13 - Создание класса и объекта 2024
Anonim

Вот большие новости! В Java вы можете определить класс внутри другого класса! Здесь класс GameFrame содержит класс с именем MyActionListener .

импорт java. АВТ. FlowLayout;

импорт java. АВТ. мероприятие. ActionEvent;

импорт java. АВТ. мероприятие. ActionListener;

импорт java. Util. Случайные;

импорт javax. свинг. JButton;

импорт javax. свинг. JFrame;

импорт javax. свинг. JLabel;

импорт javax. свинг. JTextField;

класс GameFrame расширяет JFrame {

частный статический окончательный длинный serialVersionUID = 1L;

int randomNumber = new Random (). nextInt (10) + 1;

int numGuesses = 0;

JTextField textField = новый JTextField (5);

Кнопка JButton = новый JButton («Угадай»);

JLabel label = новый JLabel (numGuesses + "догадки");

public GameFrame () {

setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE);

setLayout (новый FlowLayout ());

Добавить (TextField);

добавить (кнопка);

Добавить (ярлык); Кнопка

. addActionListener (новый MyActionListener () );

упаковка ();

SetVisible (истина);

}

класс MyActionListener реализует ActionListener {

@Override

public void actionPerformed (ActionEvent e) {

String textFieldText = textField . GetText ();

if (Integer. ParseInt (textFieldText) == randomNumber) {

. setEnabled (ложь);

TextField. setText (textField. getText () + «Да!»);

TextField. setEnabled (ложь);

} else {

textField. SetText ("");

TextField. requestFocus ();

}

numGuesses ++;

String guessWord = (numGuesses == 1)? "Guess": "guesses";

этикетка. setText (numGuesses + guessWord);

}

}

}

Класс MyActionListener - это внутренний класс. Внутренний класс очень похож на любой другой класс. Но внутри кода внутреннего класса вы можете обратиться к полям охватывающего класса. Например, несколько операторов внутри MyActionListener используют имя textField , а textField определяется в классе GameFrame .

Обратите внимание, что приведенный выше код использует класс MyActionListener только один раз. (Единственное использование - в вызове кнопки . AddActionListener .) Итак, вам действительно нужно имя для того, что используется только один раз? Нет, нет. Вы можете заменить все определение внутреннего класса внутри вызова на кнопку .addActionListener . Когда вы это сделаете, у вас есть анонимный внутренний класс. Вот как это работает.

импорт java. АВТ. FlowLayout;

импорт java. АВТ. мероприятие. ActionEvent;

импорт java. АВТ. мероприятие. ActionListener;

импорт java. Util. Случайные;

импорт javax. свинг. JButton;

импорт javax. свинг. JFrame;

импорт javax. свинг. JLabel;

импорт javax. свинг. JTextField;

класс GameFrame расширяет JFrame {

частный статический окончательный длинный serialVersionUID = 1L;

int randomNumber = new Random (). nextInt (10) + 1;

int numGuesses = 0;

JTextField textField = новый JTextField (5);

Кнопка JButton = новый JButton («Угадай»);

JLabel label = новый JLabel (numGuesses + "догадки");

public GameFrame () {

setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE);

setLayout (новый FlowLayout ());

Добавить (TextField);

добавить (кнопка);

Добавить (ярлык); Кнопка

. addActionListener (new ActionListener () {

@Override

public void actionPerformed (ActionEvent e) {

String textFieldText = textField. getText ();

if (Integer. parseInt (textFieldText) = = randomNumber) {

кнопка setEnabled (false);

textField. setText (textField. getText () + "Yes!");

textField. setEnabled (false);

} else { textField. SetText ("");

textField. RequestFocus ();

}

numGuesses ++;

String guessWord = (numGuesses == 1)? "Guess": "guesses"; < label.TextText (numGuesses + guessWord);

}

}

);

упаковка (); SetVisible (истина);

}

}

Внутренние классы хороши для таких вещей, как обработчики событий, такие как метод

actionPerformed

. Самое сложное в анонимном внутреннем классе - отслеживать круглые скобки, фигурные скобки и отступы. Некоторые скромные советы: начните с написания кода без каких-либо внутренних классов. Позже, когда вам становится скучно с обычными классами Java, экспериментируйте, изменив некоторые из ваших обычных классов на внутренние классы.

Как создавать внутренние классы в Java - манекены

Выбор редактора

Рендеринг 3D-модели в AutoCAD - манекены

Рендеринг 3D-модели в AutoCAD - манекены

После добавления света, применения материалов и определения фона для вашего 3D-модель в AutoCAD, вы готовы нажать волшебную кнопку! Нажатие на Render сообщает AutoCAD об округлении всех материалов и их применении к объектам и лицам, которым они назначены. После присвоения материалов фон применяется к ...

Как указывать вес линий в AutoCAD - манекены

Как указывать вес линий в AutoCAD - манекены

Давно, ручные редакторы разработали практику рисования линий различной ширины (вес линий), чтобы различать различные типы объектов. Ручные составители делали это с различными техническими диаметрами ниппеля чернил или с разной твердостью карандашного провода и различной степенью давления на карандаш. Поскольку компьютерная мышь обычно не поставляется с ...

Рендеринг с предустановками в AutoCAD 2008 - манекены

Рендеринг с предустановками в AutoCAD 2008 - манекены

Предустановки рендеринга в AutoCAD 2008 упрощают процесс, помогая вам найти идеальное сочетание настроек, чтобы ваша 3D-модель выглядела великолепно. AutoCAD поставляется с пятью стандартными предустановками рендеринга, которые варьируются от создания быстрых и некачественных визуализаций до высококачественных рендерингов, которые используются для презентаций. Всякий раз, когда вы создаете рендеринг - нет ...

Выбор редактора

Сеть Строительство: установка коаксиального кабеля - манекены

Сеть Строительство: установка коаксиального кабеля - манекены

, Хотя кабель витой пары является наиболее распространенным типом сетевого кабеля, некоторые сети все еще полагаются на старомодный коаксиальный кабель, обычно называемый тонким или иногда BNC-кабелем из-за типа разъемов, используемых на каждом конце кабеля. Вот несколько важных моментов в работе с коаксиальным кабелем: вы подключаете тоннель к сети ...

Создание сети: установка коммутаторов - манекенов

Создание сети: установка коммутаторов - манекенов

Установка сетевого коммутатора удивительно проста. На самом деле вам нужно знать только несколько деталей: установка коммутатора, как правило, очень проста. Просто подключите шнур питания, а затем подключите патч-кабели для подключения сети. Каждый порт коммутатора имеет гнездо RJ-45 и один светодиодный индикатор с меткой ...

Network Building: Right Tools - dummies

Network Building: Right Tools - dummies

, Чтобы правильно построить вашу сеть, у вас должны быть нужные инструменты. Начните с базового набора компьютерных инструментов, который вы можете получить примерно за 15 долларов США из любого магазина компьютеров или крупного магазина канцелярских товаров. Эти наборы включают в себя правильные отвертки и торцевые ключи, чтобы открыть ваши компьютеры и вставить карты адаптеров. (Если вы не ...

Выбор редактора

Как использовать предварительные настройки фильма на Canon Rebel T5 / 1200D - манекены

Как использовать предварительные настройки фильма на Canon Rebel T5 / 1200D - манекены

Canon Rebel T5 / 1200D имеет несколько опций для расширенных настроек видео. Чтобы получить доступ к этим настройкам, перейдите в меню фильма 2, показанное на рисунке ниже, которое включает следующие настройки: Размер записи видео: эта опция определяет разрешение видео (размер кадра, в пикселях), кадров в секунду (fps) и соотношение сторон кадра , Запись звука: через это меню ...

Как запустить спусковой механизм Canon EOS 6D удаленно - манекены

Как запустить спусковой механизм Canon EOS 6D удаленно - манекены

Вы можете запустить затвор Canon EOS 6D дистанционно с помощью пульта дистанционного управления RC-6, который продается отдельно. Вы используете пульт ДУ в сочетании с таймером. Эта опция удобна при создании фотографий натюрморта. Вместо того, чтобы ходить между камерой и вашим объектом, вы можете внести незначительные изменения в композицию и ...

Как запускать затвор удаленно на вашем Canon EOS 7D Mark II - манекены

Как запускать затвор удаленно на вашем Canon EOS 7D Mark II - манекены

Вы можете запускать затвор удаленно на вашем Canon EOS 7D Mark II с помощью пульта дистанционного управления RC-1 или RC-5, который продается отдельно. Вы используете пульт ДУ в сочетании с таймером. Эта опция удобна при создании фотографий натюрморта. Вместо того, чтобы ходить между камерой и вашим объектом, вы можете сделать ...