Uploaded by Назерке Серикбаева

java animation

advertisement
Серікбаева Назерке МКМ 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);
}
}
Нәтижесі:
Download