import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
public class Main {
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
JFrame frame = new JFrame("随机日语50音");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300);
frame.setLayout(new BorderLayout());
JLabel characterLabel = new JLabel("あ", SwingConstants.CENTER);
characterLabel.setFont(new Font("MS Gothic", Font.BOLD, 72));
frame.add(characterLabel, BorderLayout.CENTER);
JButton startButton = new JButton("开始");
frame.add(startButton, BorderLayout.SOUTH);
List<String> hiragana = Arrays.asList(
"あ", "い", "う", "え", "お",
"か", "き", "く", "け", "こ",
"さ", "し", "す", "せ", "そ",
"た", "ち", "つ", "て", "と",
"な", "に", "ぬ", "ね", "の",
"は", "ひ", "ふ", "へ", "ほ",
"ま", "み", "む", "め", "も",
"や", "ゆ", "よ",
"ら", "り", "る", "れ", "ろ",
"わ", "を", "ん"
);
List<String> katakana = Arrays.asList(
"ア", "イ", "ウ", "エ", "オ",
"カ", "キ", "ク", "ケ", "コ",
"サ", "シ", "ス", "セ", "ソ",
"タ", "チ", "ツ", "テ", "ト",
"ナ", "ニ", "ヌ", "ネ", "ノ",
"ハ", "ヒ", "フ", "ヘ", "ホ",
"マ", "ミ", "ム", "メ", "モ",
"ヤ", "ユ", "ヨ",
"ラ", "リ", "ル", "レ", "ロ",
"ワ", "ヲ", "ン"
);
Random random = new Random();
Timer timer = new Timer(100, null);
final long[] startTime = {0};
startButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
startButton.setEnabled(false);
startTime[0] = System.currentTimeMillis();
timer.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
boolean isHiragana = random.nextBoolean();
String randomChar = isHiragana ?
hiragana.get(random.nextInt(hiragana.size())) :
katakana.get(random.nextInt(katakana.size()));
characterLabel.setText(randomChar);
if (System.currentTimeMillis() - startTime[0] >= 1000) {
timer.stop();
startButton.setEnabled(true);
}
}
});
timer.start();
}
});
frame.setLocationRelativeTo(null);
frame.setVisible(true);
});
}
}