Как сделать кнопку в джава

Как сделать кнопку в джава

Перед началом работы познакомилась с существующими компонентами в Java, такими как Label, Button, Panel, TextArea.

Посмотрела как их создают, если сравнить с as3, то принцип такой же, поэтому заострять внимание не стала.

Остался один вопрос. Почему я выбрала пакет awt, а не swing? Да очень просто, когда я читала про java, то там писали про awt.

А про swing я узнала уже потом, когда писала программу, но решила, так как у них принцип работы одинаковый, то не стоит заморачиваться.

Ну да, в swing есть уже свои навороты, но о них можно будет узнать потом, если потребуется, а сейчас достаточно основ.

Запускаем среду разработки и видим следующее

Как сделать кнопку в джава

Рисунок 1- Выбор действий

Но на мой взгляд там всё настроено и ничего менять не нужно, поэтому для новичка можно изменить только тему среды.

Для этого внизу смотрим на надпись IDE Settings и первое у меня это Appearance.

Выбираю ее и справа в окне есть выпадающий список Theme.

Меняю, на какую нужно и нажимаю внизу на кнопку OK. Среда перезагрузится и покажет выбранную мной тему.

Возвращаемся к нашим баранам, а точнее к рисунку 1. И как уже показано на картинке, выбираем пункт Создать новый проект. Открывается следующее окно

Как сделать кнопку в джава

Здесь необходимо заполнить поля. Вписываю имя проекта, указываю место, куда сохранить проект и указываю, куда я установила jdk.

Своему проекту дала имя MyFrameButton. Всё заполнила и нажала OK.

Дальше у нас создается и открывается проект. Но для начала работы этого не достаточно. Теперь требуется создать свой первый класс.

Как сделать кнопку в джава

На рисунке можно увидеть класс FirstProgram. Этот класс был создан мной для работы. Как я это сделала?

Программа потребовала с меня имя класса, вот я и написала FirstProgram, затем нажала OK и получила поле для работы.

Ну вот, пришло время и покодить.

Кодирование

В созданный класс первым делом в самом вверху написала

При кодировании рядом с моей строчкой появились следующие. Я их не писала, они сами вписались.

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

Так же отмечу, что при создании класса автоматически появилась следующая строчка

public class FirstProgram<>

Я ее немножко дополнила до такой строки

public class FirstProgram extends Frame <

После имени класса добавила слово

Итак, в буквальном смысле, это звучит так: Общественный класс FirstProgram является потомком класса Frame, что значит, имеет доступ к его свойствам и методам.

При создании программы обратила внимание, что конструктор класса не создается автоматически, отличии от AS3.

Поэтому прописала конструктор класса.

Отмечу, что это конструктор класса, поэтому у него такое же имя как и у класса. Ну и модификатор такой же.

После конструктора добавила статическую точку входа программы.

public static void main(String args[])<>

Как я прочитала, эта точка для запуска программы. А статическая, потому что она одна должна быть во всём проекте.

Модификатор public для того, что бы она была доступна всем в проекте.

Настройка окна приложения

В as3 первым делом вызывали предка, а потом проводили все остальные действия. В Java оказывается тот же принцип и вызывается так же.

Итак, в конструкторе первым делом запишем такие строчки

// вызываем предка, в данном случае Frame и указываем какое имя заголовка будет
setSize(200, 200);

// что бы окно не появлялось маленьким, устанавливаем нужный нам размер.

Как сделать кнопку в джава

Пора уже определиться с тем, что у нас будет на форме.

Внешний вид

На форме у нас будет Label, в котором показывается какое-то сообщение.

В нижней части экрана располагается кнопка Button, при нажатии на которую будет происходить какое-то действие.

private int countClick=0;

// переменная счетчик, устанавливаю начальное значение 0
private Button myButton;

// переменная для Кнопки
private Label myText;

// переменная для Текста

В конструкторе класса создаем объекты

myButton = new Button(«Hello»);

// создаем Кнопку с надписью на ней Hello
myText = new Label(«Hello World «+countClick);

// создаем текстовое поле с надписью Hello World и добавляем к нему отображение счетчика

Также нужно учесть расположение объектов на форме. Для этого добавляем следующий код:

// Label будет расположен вверху, что значит на Северной части формы
add(myButton, BorderLayout.SOUTH);

// Button будет расположен внизу, значит на Южной части формы

Но что же будет, если я не напишу расположение. Прикинем на примере myText. Закомментируем его, но оставим для myButton.

В результате я увижу такую форму.

Как сделать кнопку в джава

Итак, мы видим кнопку с надписью, но текстового поля с надписью на форме нет. Вот так будет выглядеть приложение, если забыть про расположение.

Событие Кнопки

Подходим постепенно к завершению. Как и AS3 оказывается Java тоже использует Слушателя для создания события.

Однако есть отличия. В AS3 я использовала addEventListener, а тут addActionListener.

Итак, события нужно для кнопки, поэтому вешать слушателя нужно кнопки.

Для этого я пишу имя объекта кнопки, ставлю точку и выбираю из выпадающего списка событие слушателя.

Таким образом у меня получается вот так.

Ну вот, в AS3 я прописывала свое название события и константу события, а в Java нужно написать создание нового события, т.е new ActionListener.

Как только я это написала, то увидела, что была автоматически создана следующая строка.

Отмечу еще раз, я ее не писала, она САМА автоматически появилась после моей строчки.

@Override
public void actionPerformed(ActionEvent e) <

Итак, я вижу, что мне автоматически подготовили место для работы. Поэтому внутри процедуры я впишу следующий свой код.

// увеличиваю переменную на 1
myText.setText(«Hello World «+countClick);

// обновляю текст в Label. Решила оставить текст без изменения, но могла бы вместо Hello World написать что-то другое.Так что обновляется только счетчик.
>

// закрываю new ActionListener
);

// закрываю скобку события Слушателя

Ну вот и всё. Код в классе FirstProgram закончился. Осталось прописать код для запуска созданного класса.

Кодируем в Main

FirstProgram myProgram = new FirstProgram();

// создаем объект myProgram своего созданного класса FirstProgram
myProgram.setVisible(true);

// устанавливаем видимость объекта.

В принципе этого достаточно. Однако, я обратила внимание, при работе с приложением я могу окно свернуть, развернуть, но не могу его закрыть.

Закрыть окно

Для работы с меню окна используется слушатель window, а за закрытие отвечает адаптер.

Прочитала, что событие WindowClosing отвечает за закрытие окна на крестик. А чтобы окно закрывалось используют команду dispose().

Соединив всю информацию вместе, получила следующий код:

// так как действие должно быть с окном, то вешаем событие на созданный объект.

Принцип работы тот же, что и был, выбираю, прописываю new WindowAdapter() и появляется внизу текст события
@Override
public void windowClosing(WindowEvent e) <
super.windowClosing(e);

// этот текст был создан автоматически. Я вижу, что вызывается родитель с методом Закрыть окно,

в качестве аргумента отправляют Событие(event), с которым нужно дальше работать для реализации метода.

Следуя созданной для меня записи, я написала следующий код
e.getWindow().dispose();

// использую полученное событие, указываю, что мне нужно окно этого события, и указываю, что я хочу с ним сделать, а точнее уничтожить или освободить.
>
>
);

Всё. Запускаю и вижу, что программа работает.

Источник

Как сделать кнопку в джава

В данной статье мы рассмотрим процесс создания простой программы, которая состоит из 3 кнопок, при нажатии на которые фон программы меняет свой цвет. За обработку событий в Java отвечает интерфейс ActionListener. У данного интерфейса существует единственный метод actionPerformed( ActionEvent event), данный метод получает в качестве параметра произошедшее событие(в нашем случае это нажатие кнопки). Ниже приведен полный код программы с подробными комментариями.

import java.util.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class Solution <
public static void main(String []args) <
ButtonFrame frame= new ButtonFrame();//создаем фрейм
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//операция отвечающая за окончание программы после закрытия фрейма
frame.setVisible(true);//делаем фрейм видимым
>
>
class ButtonFrame extends JFrame public ButtonFrame() setSize(DEFAULT_WIDTH,DEFAULT_HEIGHE);//размеры фрейма
setTitle(«Button»);//название фрейма
ButtonPanel panel=new ButtonPanel();//создаем панель
add(panel);//добавляем панель на фрейм
>
public static final int DEFAULT_WIDTH=300;
public static final int DEFAULT_HEIGHE=200;
>
class ButtonPanel extends JPanel public ButtonPanel() < //конструктор панели
JButton yellowButton=new JButton(«yellow»);//создаем кнопки(в качестве параметра текст отображаемы на кнопке)
JButton blueButton=new JButton(«blue»);
JButton redButton=new JButton(«red»);
add(yellowButton);//добавляем кнопки на панель
add(blueButton);
add(redButton);
ColorAction yellowAction=new ColorAction(Color.yellow);//создаем событие для каждого цвета(параметр-цвет)
ColorAction blueAction=new ColorAction(Color.blue);
ColorAction redAction=new ColorAction(Color.red);
yellowButton.addActionListener(yellowAction);//передаем каждое событие соответствующей кнопке
blueButton.addActionListener(blueAction);
redButton.addActionListener(redAction);
>
private class ColorAction implements ActionListener public ColorAction(Color c) backgroundColor=c;
>
public void actionPerformed(ActionEvent event) setBackground(backgroundColor);
>
private Color backgroundColor;
>
>

оШИБОК БОЛЬШЕ ЧЕМ СТРОК.

В чем польза вашего комментария? В том, что вы умеете жать на КАПС? Если видите ошибку и хотите помочь, то укажите, в чем именно вы видите ошибку, иначе лучше промолчать.

Парниша скопировал код в свою уникальную среду, и без понимания хотел построить проект. С ошибками лучше код подавать, тогда человек начнет изучать.

Глупый вопрос, но всё же. Как расположить кнопки по вертикальной оси?

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *