2 rgr пәні: Программалау технологиялары және әдістері Тақырыбы: Одномерные массивы и двумерные массивы Мамандығы: Ақпараттық қауіпсіздік жүйесі Орындаған: Араппайұлы Серікболсын Тобы: сибк 22-1 Қабылдаған



бет2/3
Дата22.04.2024
өлшемі173,57 Kb.
#201138
түріПрограмма
1   2   3
Байланысты:
Lab4

Тапсырмалар


import java.awt.*;


import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class Main extends JPanel {


private int planetX = 300;
private int planetY = 200;
private int sputnikX;
private int sputnikY;
private int sputnikSize = 10;
private double sputnikAngle = 0;
private double sputnikRadiusX = 150;
private double sputnikRadiusY = 100;
private double sputnikOrbitSpeed = 0.1;

public Main() {


Timer timer = new Timer(20, new ActionListener() {
public void actionPerformed(ActionEvent e) {
sputnikAngle += sputnikOrbitSpeed;
sputnikX = (int) (planetX + sputnikRadiusX * Math.cos(sputnikAngle));
sputnikY = (int) (planetY + sputnikRadiusY * Math.sin(sputnikAngle));
repaint();
}
});
timer.start();

JButton increaseSpeedButton = new JButton("Увеличить скорость");


increaseSpeedButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
sputnikOrbitSpeed += 0.01; // Увеличиваем скорость на 0.01
}
});

JButton decreaseSpeedButton = new JButton("Уменьшить скорость");


decreaseSpeedButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
sputnikOrbitSpeed -= 0.01; // Уменьшаем скорость на 0.01
if (sputnikOrbitSpeed < 0) // Убеждаемся, что скорость не становится отрицательной
sputnikOrbitSpeed = 0;
}
});

JPanel buttonPanel = new JPanel();


buttonPanel.add(increaseSpeedButton);
buttonPanel.add(decreaseSpeedButton);

setLayout(new BorderLayout());


add(buttonPanel, BorderLayout.SOUTH);

setBackground(Color.WHITE); // Устанавливаем цвет фона


}

protected void paintComponent(Graphics g) {


super.paintComponent(g);
g.setColor(Color.RED);
g.fillOval(planetX - 45, planetY - 20, 40, 40);

g.setColor(Color.BLUE);


g.fillOval(sputnikX - sputnikSize / 2, sputnikY - sputnikSize / 2, sputnikSize, sputnikSize);
if (sputnikY > planetY) {
g.setColor(Color.BLACK);
g.drawString("Спутник көрінбейді", 10, 20);
} else {
g.setColor(Color.BLACK);
g.drawString("Спутник көрінеді", 10, 20);
}
}

public static void main(String[] args) {


JFrame frame = new JFrame("Планетанын спутник айналуы");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 450); // Увеличил высоту для удобства отображения кнопок
Main simulation = new Main();
frame.add(simulation);
frame.setVisible(true);
}
}




Достарыңызбен бөлісу:
1   2   3




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет