Schreiben Sie ein Programm, um die Namen aller Betrachter im Voraus in das Array einzugeben, dann die Gesamtzahl der Array-Elemente zu ermitteln und schließlich die Indizes der Elemente zufällig aus den Array-Elementen zu extrahieren und die Namen der glücklichen Betrachter basierend darauf zu erhalten die extrahierten Indizes.
Die Idee ist wie folgt:
Definieren Sie das Schlüsselereignis des Eingabefelds und ermitteln Sie mithilfe der Funktion getKeyChar() der Klasse KeyEvent, ob es sich um ein Wagenrücklaufzeichen handelt. Andernfalls wird es nicht verarbeitet.
Verwenden Sie die Funktion isEmpty(), um festzustellen, ob sich im Textfeld eine Zeichenfolge befindet. Wenn keine Zeichenfolge vorhanden ist, wird keine Verarbeitung durchgeführt.
Wenn es sich um eine zulässige Eingabe handelt, fügen Sie den Namen und das Wagenrücklaufzeichen der Eingabeperson über die append()-Methode der JTextArea-Klasse zur Personalliste hinzu.
Verwenden Sie die Methode selectAll(), um alle Zeichen im Textfeld auszuwählen.
Definieren Sie die Funktion, die ausgeführt werden soll, wenn auf die Schaltfläche „Extrahieren“ geklickt wird, rufen Sie den Personallistentext über die Methode getText () der JTextArea-Klasse ab und speichern Sie ihn in einer Zeichenfolge.
Erstellen Sie ein eindimensionales Zeichenfolgenarray, teilen Sie die vorherige Zeichenfolge entsprechend dem Wagenrücklaufzeichen auf und speichern Sie sie im Array.
Generieren Sie über Math.random () einen zufälligen Array-Index als Array-Index des Gewinners.
Gewinninformationen einschließlich Formatparametern definieren;
Fügen Sie den Gewinninformationen über die format()-Methode der String-Klasse Personalparameter hinzu.
Verwenden Sie die Methode setText() der Klasse JTextArea, um die Gewinninformationen im Textfeld anzuzeigen.
Definieren Sie die Funktion, die ausgeführt werden soll, wenn auf die Schaltfläche „Beenden“ geklickt wird, und verwenden Sie die Methode System.exit(0), um das Programm zu beenden.
Der Code lautet wie folgt:
Kopieren Sie den Codecode wie folgt:
Paket cn.edu.xidian.crytoll;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.UIManager;
import javax.swing.border.EmptyBorder;
import javax.swing.border.TiltedBorder;
öffentliche Klasse ArrayExample {
privater JFrame-Frame;
privates JTextField textField;
private JScrollPane scrollPane;
privates JLabel label_1;
JTextArea textArea = new JTextArea();
private JTextArea textArea_1;
/**
* Starten Sie die Anwendung.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
versuchen {
ArrayExample window = new ArrayExample();
window.frame.setVisible(true);
} Catch (Ausnahme e) {
e.printStackTrace();
}
}
});
}
/**
* Erstellen Sie die Anwendung.
*/
öffentliches ArrayExample() {
initialisieren();
}
/**
* Initialisieren Sie den Inhalt des Frames.
*/
private void initialize() {
frame = new JFrame("Verwenden Sie das Array, um glückliche Zuschauer zufällig auszuwählen");
frame.setBounds(100, 100, 500, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JLabel label = new JLabel("/u8F93/u5165/u5728/u573A/u89C2/u4F17/u59D3/u540D/u6309/u56DE/u8F66");
label.setBounds(10, 10, 132, 15);
frame.getContentPane().add(label);
textField = new JTextField();
textField.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
do_textField_keyPressed(e);
}
});
textField.setBounds(10, 35, 132, 21);
frame.getContentPane().add(textField);
textField.setColumns(10);
scrollPane = new JScrollPane();
scrollPane.setBounds(10, 66, 132, 185);
frame.getContentPane().add(scrollPane);
textArea_1 = new JTextArea();
scrollPane.setViewportView(textArea_1);
label_1 = new 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-Taste = new JButton("/u62BD/u53D6");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
do_button_actionPerformed(e);
}
});
button.setBounds(404, 187, 70, 23);
frame.getContentPane().add(button);
JButton button_1 = new JButton("/u9000/u51FA");
button_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
do_button_1_actionPerformed(e);
}
});
button_1.setBounds(404, 228, 70, 23);
frame.getContentPane().add(button_1);
}
protected void do_textField_keyPressed(KeyEvent e) {
if (e.getKeyChar() != '/n')// Wenn es sich nicht um ein Wagenrücklaufzeichen handelt, wird es nicht verarbeitet.
zurückkehren;
Stringname = textField.getText();
if (name.isEmpty())// Wenn das Textfeld keine Zeichenfolge enthält, wird keine Verarbeitung durchgeführt
zurückkehren;
textArea_1.append(name + "/n");//Füge den eingegebenen Namen und das Wagenrücklaufzeichen zur Personenliste hinzu
textField.selectAll();//Alle Zeichen im Textfeld auswählen
}
protected void do_button_actionPerformed(ActionEvent e) {
String perstring = textArea_1.getText();//Den Text der Personalliste abrufen
String[] personalArray = perstring.split("/n{1,}");//Holen Sie sich das Personalarray
int index = (int) (Math.random() * personalArray.length); // Einen zufälligen Array-Index generieren
//Gewinninformationen einschließlich Formatparametern definieren
String formatArg = „Die Zuschauer dieser Verlosung:/n/t%1$s/nHerzlichen Glückwunsch an %1$5s, dass Sie der Hauptpreisgewinner dieser Verlosung geworden sind.“
+ "/n/nWir vergeben %1$5s:/n/t20 Kartons abgelaufenen Joghurts.";
//Fügen Sie Personalparameter hinzu, um Informationen zu gewinnen
String info = String.format(formatArg, personalArray[index]);
textArea.setText(info); // Gewinninformationen im Textbereich anzeigen
}
protected void do_button_1_actionPerformed(ActionEvent e) {
System.exit(0);
}
}
Der Effekt ist wie in der Abbildung dargestellt: