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);
}
}
Достарыңызбен бөлісу: |