Серікбаева Назерке МКМ 19-5Б Қарапайым анимация жасау Программа коды: package com.company;// класстарды біріктіретін пакет import javax.swing.*;// графикалық интерфейс құруға арналған кітапхана import java.awt.*;// платформалық тәуелсіз Windows GUI кітапханасы import java.awt.event.ActionEvent;//ActionEvent-жасалады: кнопканы басқанда; тізім элементтерін екі рет нұқу; мәзір элементін таңдау кезінде import java.awt.event.ActionListener;//бұл пайдаланушы белгілі бір әрекетті орындаған кезде өз әдісін шақыратын көрінбейтін GUI обьектісі. Кәдімгі әрекеттерге кнопканы басу, ауыстыру кнопкасын ауыстыру, флажок қою, тізім өрісіндегі элементті таңдау және т.б. кіреді. public class AnimationNazerke2 {// модефикатор,басты әдіс private static JComboBox combobox;//бұл ашылмалы тізім болып табылатын Java Swing компоненті private static JRadioButton radiobutton1;//бұл таңдалған немесе таңдалмаған күйі бар элементті білдіретін Swing компоненті private static JRadioButton radiobutton2; private static JButton button;//кнопка private static class MyPanel extends JPanel {//Jpanel, Java Swing пакетінің бөлігі, компоненттер тобын сақтай алатын контейнер. private boolean active = false;//логикалық оператор private boolean firstTime = true; int int int int int x; y; dx; dy; jyldamdyk; private Timer timer; public MyPanel() { x = 0; y = 0; dx = 0; dy = 0; jyldamdyk = 0; timer = new Timer(20, new ActionListener() {//Задержка @Override public void actionPerformed(ActionEvent e) { if (x < 0 || x > getWidth() - 50) { dx = -dx; } if (y < 0 || y > getHeight() - 50) { dy = -dy; } x += dx; y += dy; repaint();//repaint() шақыру, компоненттің ең тарылған аймағы. Бұл әсіресе күрделі, динамикалық мазмұнға және анимацияға толы компоненттерге қатысты, өйткені бұл сурет салу уақытын үнемдеуге мүмкіндік береді. } }); } @Override public void paint(Graphics g) { super.paint(g);// бұл әдісте сурет салады if (active) { g.setColor(Color.red); g.drawOval(x, y, 50, 50); g.fillOval(x, y, 50, 50); } } private void getParameters() { jyldamdyk = Integer.parseInt((String) combobox.getSelectedItem()); if (firstTime) { // x = getWidth() / 2; y = getHeight() / 2; firstTime = false; } if (radiobutton1.isSelected()) { if (dy > 0) { dy = -jyldamdyk; } else { dy = jyldamdyk; } } else { if (dy > 0) { dy = jyldamdyk; } else { dy = -jyldamdyk; } } if (radiobutton2.isSelected()) { if (dx > 0) { dx = -jyldamdyk; } else { dx = jyldamdyk; } } else { if (dx > 0) { dx = jyldamdyk; } else { dx = -jyldamdyk; } } } } public static void main(String[] args) { JFrame frame = new JFrame("Animation with Nazerke");// окно аты frame.setSize(new Dimension(600, 400));//размер frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//шығу frame.setLocationRelativeTo(null);// терезені ортаға қою JFrame frame1 = new JFrame("Таңдау"); frame1.setSize(new Dimension(400, 100));//размер frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//шығу frame1.setLocationRelativeTo(null);//терезені ортаға қою frame1.setLayout(new GridBagLayout());//Мәзір жолағына барлық компоненттерді қосуға болады, мысалы, белгішелері бар жазулар немесе ашылмалы тізімдер JMenuBar menuBar = new JMenuBar(); JMenuBar menuBar1 = new JMenuBar(); JLabel label = new JLabel("Жылдамдық:");// текст с иконкой String str[] = {"1", "2", "3", "4", "5", "10"}; combobox = new JComboBox(str); radiobutton1 = new JRadioButton("жоғары-төмен"); radiobutton2 = new JRadioButton("оң-сол"); button = new JButton("Ok"); frame1.add(label); frame1.add(combobox); frame1.add(radiobutton1); frame1.add(radiobutton2); frame1.add(button); MyPanel panel = new MyPanel(); panel.setBackground(Color.white); frame.add(panel, BorderLayout.CENTER);//компоненттерді орналастыру үшін JMenu menu = new JMenu("Меню"); JMenuItem JMenuItem JMenuItem JMenuItem JMenuItem showpicture = new JMenuItem("Суретті көрсету "); choose = new JMenuItem("Таңдау"); animate = new JMenuItem("Анимация"); stop = new JMenuItem("Стоп"); quit = new JMenuItem("Шығу"); menu.add(showpicture); menu.add(choose); menu.add(animate); menu.add(stop); menu.addSeparator(); menu.add(quit); menuBar.add(menu); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { frame1.setVisible(false); panel.getParameters(); panel.repaint(); } }); quit.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.exit(1); } }); choose.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { frame1.setJMenuBar(menuBar1); frame1.setVisible(true); } }); animate.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (!panel.timer.isRunning()) { panel.timer.start(); } frame.repaint(); } }); stop.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (panel.timer.isRunning()) { panel.timer.stop(); } frame.repaint(); } }); showpicture.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (panel.active) { panel.active = false; } else { panel.active = true; if (panel.firstTime) { panel.getParameters(); } } frame.repaint(); } }); frame.setJMenuBar(menuBar); frame.setVisible(true); } } Нәтижесі: