Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.vladislav;
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.*;
- // Главный класс, в котором расположен запускаемый метод
- public class Main {
- // Главный вызываемый метод
- public static void main(String[] args) {
- // Создание окна
- Window window = new Window();
- }
- }
- // Класс окна
- class Window extends JFrame {
- private JTextArea result;
- private double first = 0.0, second = 0.0;
- private int operation = 0;
- // Конструктор класса
- public Window() {
- // Устанавливаем фокус и создаём панель
- Panel panel = new Panel();
- setFocusable(true);
- // Шрифты
- Font buttonFont = new Font("serif", 0, 20),
- labelFont = new Font("arial", 1, 30),
- textFont = new Font("arial", 2, 30);
- // Для произвольного прикрепления
- panel.setLayout(null);
- // Attach buttons
- JButton[] buttons = new JButton[17];
- for (int i = 0; i < buttons.length; i++) {
- buttons[i] = new JButton();
- // Размеры, шрифт и координаты кнопки
- buttons[i].setSize(100, 25);
- buttons[i].setFont(buttonFont);
- buttons[i].setLocation(30, 50 + i * 30);
- buttons[i].addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- // Вызываем метод обработки кнопок
- buttonClick((JButton)e.getSource());
- }
- });
- // Крепим кнопку в панель
- panel.add(buttons[i]);
- }
- // Названия для кнопок. Числа - циклом, символы - вручную
- for (int i = 0; i < 10; i++)
- buttons[i].setText(i + "");
- buttons[10].setText("+");
- buttons[11].setText("-");
- buttons[12].setText("/");
- buttons[13].setText("*");
- buttons[14].setText("=");
- buttons[15].setText("C");
- buttons[16].setText("Выход");
- // Прикрепим текст
- result = new JTextArea();
- // Шрифт, границы, цвет шрифта и фона. Так же прикрепляем
- result.setFont(textFont);
- result.setBounds(300, 10, 300, 35);
- result.setForeground(new Color(0, 0, 128));
- result.setBackground(Color.WHITE);
- panel.add(result);
- // Абсолютно теже самые действия, но только для обычного текста
- JLabel label = new JLabel("Результат: ");
- label.setFont(labelFont);
- label.setBounds(130, 0, 300, 50);
- panel.add(label);
- // Прикрепляем панель в контент окна
- Container container = getContentPane();
- container.add(panel);
- // Размер, заголовок и видимость
- setBounds(128, 64, 800, 600);
- setTitle("Calculator");
- setVisible(true);
- }
- private void buttonClick(JButton button) {
- // Здесь мы будем писать обработку событий различных кнопок в следующем уроке!
- }
- }
- // Класс панели, в котором происходит рисовка графики
- class Panel extends JPanel {
- // Конструктор класса
- public Panel() {
- }
- // Рисовка происходит каждый шаг
- public void paintComponent(Graphics graphics) {
- super.paintComponent(graphics);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement