用Java打出彩色小球24,26,37,88,65,13,66,75,21,33,76共11个,按照从小到大的顺序进行排序,单数和复数分组输出,且输出的值不能是7和11的倍数
时间: 2024-06-13 22:08:31 浏览: 9
以下是Java代码实现,可以满足你的需求:
```java
import java.awt.Color;
import java.awt.Graphics;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class BallSort extends JPanel {
private static final long serialVersionUID = 1L;
private static final int WIDTH = 800;
private static final int HEIGHT = 600;
private static final int BALL_SIZE = 50;
private static final int BALL_GAP = 10;
private static final int BALL_START_X = 50;
private static final int BALL_START_Y = 50;
private static final int[] BALL_NUMBERS = { 24, 26, 37, 88, 65, 13, 66, 75, 21, 33, 76 };
private static final Color[] BALL_COLORS = { Color.RED, Color.ORANGE, Color.YELLOW, Color.GREEN, Color.BLUE,
new Color(75, 0, 130), new Color(238, 130, 238), new Color(255, 165, 0), new Color(128, 0, 128),
new Color(0, 255, 255), new Color(255, 0, 0) };
private List<Integer> oddNumbers = new ArrayList<>();
private List<Integer> evenNumbers = new ArrayList<>();
public BallSort() {
JFrame frame = new JFrame("Ball Sort");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(WIDTH, HEIGHT);
frame.add(this);
frame.setVisible(true);
sortNumbers();
}
private void sortNumbers() {
for (int number : BALL_NUMBERS) {
if (number % 7 != 0 && number % 11 != 0) {
if (number % 2 == 0) {
evenNumbers.add(number);
} else {
oddNumbers.add(number);
}
}
}
Collections.sort(oddNumbers);
Collections.sort(evenNumbers);
}
@Override
public void paint(Graphics g) {
super.paint(g);
int x = BALL_START_X;
int y = BALL_START_Y;
for (int number : oddNumbers) {
drawBall(g, x, y, number, Color.RED);
y += BALL_SIZE + BALL_GAP;
}
x += BALL_SIZE + BALL_GAP;
y = BALL_START_Y;
for (int number : evenNumbers) {
drawBall(g, x, y, number, Color.BLUE);
y += BALL_SIZE + BALL_GAP;
}
}
private void drawBall(Graphics g, int x, int y, int number, Color color) {
g.setColor(color);
g.fillOval(x, y, BALL_SIZE, BALL_SIZE);
g.setColor(Color.WHITE);
g.drawString(String.valueOf(number), x + BALL_SIZE / 2, y + BALL_SIZE / 2);
}
public static void main(String[] args) {
new BallSort();
}
}
```