Напишите программу, которая заранее вводит имена всех зрителей в массив, затем получает общее количество элементов массива и, наконец, случайным образом извлекает индексы элементов из элементов массива и получает имена счастливчиков на основе извлеченные индексы.
Идея заключается в следующем:
Определите ключевое событие поля ввода и используйте функцию getKeyChar() класса KeyEvent, чтобы определить, является ли это символом возврата каретки. Если нет, он не будет обработан;
Используйте функцию isEmpty(), чтобы определить, есть ли строка в текстовом поле. Если строка отсутствует, обработка выполняться не будет;
Если это допустимый ввод, добавьте имя введенного человека и символ возврата каретки в список персонала с помощью метода add() класса JTextArea;
Используйте метод selectAll(), чтобы выбрать все символы в текстовом поле;
Определить функцию, которая будет выполняться при нажатии кнопки «Извлечь», получить текст списка персонала с помощью метода getText() класса JTextArea и сохранить его в строке;
Создайте одномерный массив строк, разделите предыдущую строку по символу возврата каретки и сохраните ее в массиве;
Сгенерируйте индекс случайного массива с помощью Math.random() в качестве индекса победителя;
Определите выигрышную информацию, включая параметры формата;
Добавьте параметры персонала к выигрышной информации с помощью метода format() класса String;
Используйте метод setText() класса JTextArea, чтобы отобразить информацию о выигрыше в текстовом поле;
Определите функцию, которая будет выполняться при нажатии кнопки «Выход», и используйте метод System.exit(0) для выхода из программы.
Код выглядит следующим образом:
Скопируйте код кода следующим образом:
пакет cn.edu.xidian.crytoll;
импортировать java.awt.BorderLayout;
импортировать java.awt.Color;
импортировать java.awt.EventQueue;
импортировать java.awt.event.ActionEvent;
импортировать java.awt.event.ActionListener;
импортировать java.awt.event.KeyAdapter;
импортировать java.awt.event.KeyEvent;
импортировать javax.swing.JButton;
импортировать javax.swing.JFrame;
импортировать javax.swing.JPanel;
импортировать javax.swing.JScrollPane;
импортировать javax.swing.JTextArea;
импортировать javax.swing.JTextField;
импортировать javax.swing.JLabel;
импортировать javax.swing.UIManager;
импортировать javax.swing.border.EmptyBorder;
импортировать javax.swing.border.TitledBorder;
общественный класс ArrayExample {
частный фрейм JFrame;
частный JTextField textField;
частный JScrollPane ScrollPane;
частная метка JLabel_1;
JTextArea textArea = новая JTextArea();
частная JTextArea textArea_1;
/**
* Запустите приложение.
*/
public static void main(String[] args) {
EventQueue.invokeLater(новый Runnable() {
общественный недействительный запуск () {
пытаться {
Окно ArrayExample = новый ArrayExample();
window.frame.setVisible(истина);
} catch (Исключение е) {
е.printStackTrace();
}
}
});
}
/**
* Создайте приложение.
*/
общественный ArrayExample() {
инициализировать();
}
/**
* Инициализируйте содержимое кадра.
*/
частная недействительная инициализация () {
Frame = new JFrame("Используйте массив для случайного выбора счастливчиков");
Frame.setBounds(100, 100, 500, 300);
Frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Frame.getContentPane().setLayout(null);
Метка JLabel = новая JLabel("/u8F93/u5165/u5728/u573A/u89C2/u4F17/u59D3/u540D/u6309/u56DE/u8F66");
label.setBounds(10, 10, 132, 15);
Frame.getContentPane().add(метка);
textField = новый JTextField();
textField.addKeyListener(новый KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
do_textField_keyPressed (е);
}
});
textField.setBounds(10, 35, 132, 21);
Frame.getContentPane().add(textField);
textField.setColumns(10);
ScrollPane = новый JScrollPane ();
ScrollPane.setBounds(10, 66, 132, 185);
Frame.getContentPane().add(scrollPane);
textArea_1 = новая JTextArea();
ScrollPane.setViewportView(textArea_1);
label_1 = новая JLabel("/u9009/u53D6/u89C2/u4F17/u4EBA/u5458/uFF1A");
label_1.setBounds(180, 10, 132, 15);
Frame.getContentPane().add(label_1);
textArea.setBounds(180, 34, 214, 217);
Frame.getContentPane().add(textArea);
Кнопка JButton = новая JButton("/u62BD/u53D6");
button.addActionListener(новый ActionListener() {
общественный недействительный actionPerformed (ActionEvent e) {
do_button_actionPerformed (е);
}
});
button.setBounds(404, 187, 70, 23);
Frame.getContentPane().add(кнопка);
JButton button_1 = новая JButton("/u9000/u51FA");
button_1.addActionListener (новый ActionListener () {
общественный недействительный actionPerformed (ActionEvent e) {
do_button_1_actionPerformed (е);
}
});
button_1.setBounds(404, 228, 70, 23);
Frame.getContentPane().add(button_1);
}
protected void do_textField_keyPressed (KeyEvent e) {
if (e.getKeyChar() != '/n')// Если это не символ возврата каретки, он не будет обработан.
возвращаться;
Имя строки = textField.getText();
if (name.isEmpty())// Если в текстовом поле нет строки, никакая обработка выполняться не будет
возвращаться;
textArea_1.append(name + "/n");//Добавляем введенное имя и символ возврата каретки в список людей
textField.selectAll();//выбираем все символы в текстовом поле
}
protected void do_button_actionPerformed (ActionEvent e) {
String perstring = textArea_1.getText(); // Получаем текст списка персонала
String[]personArray = perstring.split("/n{1,}");//Получаем массив персонала
int index = (int) (Math.random() *personalArray.length); // Генерируем индекс случайного массива;
//Определяем информацию о выигрыше, включая параметры формата
String formatArg = "Члены аудитории этого розыгрыша:/n/t%1$s/nПоздравляем %1$5s с тем, что он стал обладателем главного приза этого розыгрыша аудитории."
+ "/n/nМы наградим %1$5s:/n/t20 коробок просроченного йогурта.";
//Добавляем параметры персонала для получения информации о выигрыше
Информация о строке = String.format(formatArg,personArray[index]);
textArea.setText(info);//Отображение информации о выигрыше в текстовой области
}
protected void do_button_1_actionPerformed (ActionEvent e) {
Система.выход(0);
}
}
Эффект такой, как показано на рисунке: