Java/Первое окно: различия между версиями

Материал из Викиучебника — открытых книг для открытого мира
Содержимое удалено Содержимое добавлено
Отмена правки 130346, сделанной Volobuev Ilya (обсуждение)
Оригинальный Xiaomi Redmi Note 4 Х 4 Х Смартфон 3 ГБ ОПЕРАТИВНОЙ ПАМЯТИ 32 ГБ ROM Snapdragon 625 Octa Core MIUI 8.1 Отпечатков Пальцев 5.5 "FHD 4 Г FDD LTE
Строка 1: Строка 1:
Оригинал Xiaomi Redmi Note 4 Х 4 Х Смартфон 3 ГБ ОПЕРАТИВНОЙ ПАМЯТИ 32 ГБ ROM Snapdragon 625 Octa Core MIUI 8.1 Отпечатков Пальцев 5.5 "FHD 4 Г FDD LTE
{{Java/Chapters}}
Так как в большинстве своем сегодняшние начинающие программисты не любят окно командной строки - приведу пример оконного приложения.
Лучшая версия себя. Полюбившийся публике RedMi Note 4 стал еще лучше, переродившись в новой модели – Xiaomi RedMi Note 4 Pro. И что самое приятное, цена на телефон по-прежнему радует не меньше, чем и сами нововведения!
== Начнем с простого ==
<source lang="java">
Производитель:Xiaomi
import javax.swing.JFrame;
Разблокировка телефона:Да

Тип батареи:Не съёмная
public class MyWindowApp extends JFrame { //Наследуя от JFrame мы получаем всю функциональность окна
Разрешение дисплея:1920x1080

Емкость батареи (мАч):4000mAh(Min) - 4100mAh(Typ)
public MyWindowApp(){
Операционная система:Android
super("My First Window"); //Заголовок окна
Особенности:Гравитационный эффект,GPRS,Сенсорный экран,Сообщение,Bluetooth,Видеоплеер,Видеоплеер HD,Wi-Fi,Воспроизведение MP3,FM-радио,GPS-навигация,Передняя камера,Слоты карт памяти,E-mail,QWERTY-клавиатура
setBounds(100, 100, 200, 200); //Если не выставить
Модель Xiaomi:Редми Примечание 4X3 ГБ 32 ГБ
//размер и положение
Язык:Русский,Немецкий,Испанский,Польский,Турецкий,Английский,Норвежский,Итальянский,Французский,Португальский
//то окно будет мелкое и незаметное
Камера:13.0 MP
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //это нужно для того чтобы при
Тип камеры:Передняя & задняя камера
//закрытии окна закрывалась и программа,
Количество SIM-карт:Две SIM-карты
//иначе она останется висеть в процессах
Дата выпуска:2017
}
Сотовая связь:GSM/WCDMA/LTE

ПЗУ:32 ГБ
public static void main(String[] args) { //эта функция может быть и в другом классе
Состояние:Новое
MyWindowApp app = new MyWindowApp(); //Создаем экземпляр нашего приложения
Чёткость записи:1080P
app.setVisible(true); //С этого момента приложение запущено!
Размер дисплея:5,5
}
Производитель процессора:Qualcomm
}
Процессор:Восьмиядерный
</source>
Дизайн:Стержень

Толщина:Ультра тонкий (<9mm)
Вот у нас и получилось ничего не делающее приложение!
Тип сенсорного экрана:Ёмкостный экран

Время Разговора:About 6-8 hours
== Делаем что-то полезное ==
Режим диапазона:2SIM/Multi-Bands

Цвет дисплея:Цвет
Это конечно замечательно уметь показывать пустое окно, но мы хотим, чтобы оно приносило пользу! Создадим форму для подсчета ворон на заборе. Для этого будем отображать текущее количество ворон и с помощью двух кнопок добавлять или вычитать по одной.
ОЗУ:3 ГБ

Размер:151mm*76mm*8.45mm
=== Дизайн ===
Язык:Chinese
Это то, что мы примерно хотим увидеть:
MIUI:MIUI 8.1
{| border=1
Fingerprint:Support
|colspan=2 style="background:red"|<font color="white">Вороносчет</font>
CPU:Snapdragon 625 Octa Core up to 2.0GHz
|-
TF Card:Support , up to 128GB
|colspan=2|'''Ворон на заборе : 666'''
2G:GSM B2/B3/B5/B8
|-
3G:WCDMA B1/B2/B5/B8;TD-SCDMA B34/B39;CDMA2000/1X BC0
|Ворона прилетела
4G:FDD-LTE B1/B3/ B5/B7/ B8;TD-LTE B38/B39/B40/B41(2555-2655MHz)
|Ворона улетела
Xiaomi Model:Xiaomi Redmi Note 4 X
|}

Цена: 9 870 руб.
=== Скелет программы ===
Пишем программу:
Более детальный обзор на нашем сайте. www.xiaomi-redmi-note.tk

<source lang="java">
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class VoronCalc extends JFrame {
private int voron = 0;
private JLabel countLabel;
private JButton addCrow;
private JButton removeCrow;

public VoronCalc(){
super("Crow calculator");
//Подготавливаем компоненты объекта
countLabel = new JLabel("Crows:" + voron);
addCrow = new JButton("Add Crow");
removeCrow = new JButton("Remove Crow");

//Подготавливаем временные компоненты
JPanel buttonsPanel = new JPanel(new FlowLayout());
//Расставляем компоненты по местам
add(countLabel, BorderLayout.NORTH); //О размещении компонент поговорим позже

buttonsPanel.add(addCrow);
buttonsPanel.add(removeCrow);

add(buttonsPanel, BorderLayout.SOUTH);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public static void main(String[] args) {
VoronCalc app = new VoronCalc();
app.setVisible(true);
app.pack(); //Эта команда подбирает оптимальный размер в зависимости от содержимого окна
}
}
</source>

После компиляции и запуска - получится что-то такое:

[[Файл:СrowCalc.png]]
<nowiki></nowiki>

=== Добавляем функциональность ===

Пришло время добавить немного интерактивности. Нам нужно сделать 3 вещи:

# Научить кнопку addCrow добавлять 1 к переменной voron.
# Научить кнопку removeCrow вычитать 1 из переменной voron.
# Научить countLabel - обновлять свое значение в зависимости от содержимого переменной voron.

==== addCrow ====
Добавляем [[Java/Listeners|listener]] для кнопки addCrow.
<source lang="java">
addCrow.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
voron = voron+1; //Добавляем одну ворону
updateCrowCounter(); //Сообщаем приложению, что количество ворон изменилось
}
});
</source>

==== removeCrow ====
Добавляем [[Java/Listeners|listener]] для кнопки removeCrow.
<source lang="java">
removeCrow.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
if( voron > 0 ) {
voron = voron - 1;
updateCrowCounter(); //Сообщаем приложению, что количество ворон изменилось
}
}
});
</source>

==== updateCrowCounter ====
<source lang="java">
private void updateCrowCounter() {
countLabel.setText("Crows:" + voron);
}
</source>

=== Конечный результат ===
* [[Java/Первое окно/VoronCalc.java|VoronCalc.java]] - главный класс программы

{{BookCat}}

[[en:Java Programming/Events and Buttons]]
[[pt:Java/Swing/Eventos e Action listeners]]

Версия от 20:12, 7 апреля 2017

Оригинал Xiaomi Redmi Note 4 Х 4 Х Смартфон 3 ГБ ОПЕРАТИВНОЙ ПАМЯТИ 32 ГБ ROM Snapdragon 625 Octa Core MIUI 8.1 Отпечатков Пальцев 5.5 "FHD 4 Г FDD LTE

Лучшая версия себя. Полюбившийся публике RedMi Note 4 стал еще лучше, переродившись в новой модели – Xiaomi RedMi Note 4 Pro. И что самое приятное, цена на телефон по-прежнему радует не меньше, чем и сами нововведения!

Производитель:Xiaomi Разблокировка телефона:Да Тип батареи:Не съёмная Разрешение дисплея:1920x1080 Емкость батареи (мАч):4000mAh(Min) - 4100mAh(Typ) Операционная система:Android Особенности:Гравитационный эффект,GPRS,Сенсорный экран,Сообщение,Bluetooth,Видеоплеер,Видеоплеер HD,Wi-Fi,Воспроизведение MP3,FM-радио,GPS-навигация,Передняя камера,Слоты карт памяти,E-mail,QWERTY-клавиатура Модель Xiaomi:Редми Примечание 4X3 ГБ 32 ГБ Язык:Русский,Немецкий,Испанский,Польский,Турецкий,Английский,Норвежский,Итальянский,Французский,Португальский Камера:13.0 MP Тип камеры:Передняя & задняя камера Количество SIM-карт:Две SIM-карты Дата выпуска:2017 Сотовая связь:GSM/WCDMA/LTE ПЗУ:32 ГБ Состояние:Новое Чёткость записи:1080P Размер дисплея:5,5 Производитель процессора:Qualcomm Процессор:Восьмиядерный Дизайн:Стержень Толщина:Ультра тонкий (<9mm) Тип сенсорного экрана:Ёмкостный экран Время Разговора:About 6-8 hours Режим диапазона:2SIM/Multi-Bands Цвет дисплея:Цвет ОЗУ:3 ГБ Размер:151mm*76mm*8.45mm Язык:Chinese MIUI:MIUI 8.1 Fingerprint:Support CPU:Snapdragon 625 Octa Core up to 2.0GHz TF Card:Support , up to 128GB 2G:GSM B2/B3/B5/B8 3G:WCDMA B1/B2/B5/B8;TD-SCDMA B34/B39;CDMA2000/1X BC0 4G:FDD-LTE B1/B3/ B5/B7/ B8;TD-LTE B38/B39/B40/B41(2555-2655MHz) Xiaomi Model:Xiaomi Redmi Note 4 X

Цена: 9 870 руб.

Более детальный обзор на нашем сайте. www.xiaomi-redmi-note.tk