اكتب برنامجًا لإدخال أسماء جميع المشاهدين في المصفوفة مسبقًا، ثم احصل على العدد الإجمالي لعناصر المصفوفة، وأخيرًا قم باستخراج سفوح العناصر من عناصر المصفوفة بشكل عشوائي، واحصل على أسماء المشاهدين المحظوظين بناءً على المشتركين المستخرجة.
الفكرة هي كما يلي:
حدد الحدث الرئيسي لمربع الإدخال، واستخدم وظيفة getKeyChar () لفئة KeyEvent لتحديد ما إذا كان حرف إرجاع إلى أول السطر، وإذا لم يكن الأمر كذلك، فلن تتم معالجته؛
استخدم الدالة isEmpty() لتحديد ما إذا كانت هناك سلسلة في مربع النص. إذا لم تكن هناك سلسلة، فلن يتم تنفيذ أي معالجة؛
إذا كان إدخالاً قانونيًا، فأضف اسم شخص الإدخال وحرف الإرجاع إلى قائمة الموظفين من خلال طريقة append() لفئة JTextArea؛
استخدم طريقة SelectAll() لتحديد كافة الأحرف في مربع النص؛
تحديد الوظيفة التي سيتم تنفيذها عند النقر فوق الزر "استخراج"، والحصول على نص قائمة الموظفين من خلال طريقة getText() لفئة JTextArea، وتخزينه في سلسلة؛
إنشاء مصفوفة سلسلة أحادية البعد، وتقسيم السلسلة السابقة وفقًا لحرف الإرجاع، وتخزينها في المصفوفة؛
قم بإنشاء فهرس مصفوفة عشوائية من خلال Math.random() باعتباره مصفوفة منخفضة للفائز؛
تحديد المعلومات الفائزة بما في ذلك معلمات التنسيق؛
أضف معلمات الموظفين إلى المعلومات الفائزة من خلال طريقة format() لفئة السلسلة؛
استخدم طريقة setText() لفئة JTextArea لعرض المعلومات الفائزة في حقل النص؛
حدد الوظيفة التي سيتم تنفيذها عند النقر فوق الزر "خروج"، واستخدم طريقة System.exit(0) للخروج من البرنامج.
الرمز هو كما يلي:
انسخ رمز الكود كما يلي:
الحزمة 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.TitledBorder;
فئة عامة ArrayExample {
إطار JFrame خاص؛
حقل نص JTextField خاص ؛
JScrollPane الخاص ScrollPane؛
تسمية JLabel الخاصة_1؛
JTextArea textArea = new JTextArea();
JTextArea الخاص textArea_1؛
/**
* إطلاق التطبيق.
*/
public static void main(String[] args) {
EventQueue.invocLater(new Runnable() {
تشغيل الفراغ العام () {
يحاول {
ArrayExample window = new ArrayExample();
window.frame.setVisible(true);
} قبض (الاستثناء ه) {
printStackTrace();
}
}
});
}
/**
* إنشاء التطبيق.
*/
صفيف عام مثال () {
تهيئة();
}
/**
* تهيئة محتويات الإطار.
*/
تهيئة الفراغ الخاص () {
frame = new JFrame("استخدم المصفوفة لاختيار المشاهدين المحظوظين بشكل عشوائي");
frame.setBounds(100, 100, 500, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
تسمية JLabel = 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() {
@تجاوز
مفتاح الفراغ العام (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 Button = new JButton("/u62BD/u53D6");
Button.addActionListener(new ActionListener() {
إجراء باطل عام (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() {
إجراء باطل عام (ActionEvent e) {
do_button_1_actionPerformed(e);
}
});
Button_1.setBounds(404, 228, 70, 23);
frame.getContentPane().add(button_1);
}
محمية باطلة do_textField_keyPressed(KeyEvent e) {
if (e.getKeyChar() != '/n')// إذا لم يكن حرف إرجاع إلى أول السطر، فلن تتم معالجته.
يعود؛
اسم السلسلة = textField.getText();
if (name.isEmpty())// إذا لم يكن هناك سلسلة في مربع النص، فلن تتم أي معالجة
يعود؛
textArea_1.append(name + "/n");// أضف الاسم المُدخل وحرف الإرجاع إلى قائمة الأشخاص
textField.selectAll();// حدد جميع الأحرف في مربع النص
}
محمية باطلة do_button_actionPerformed(ActionEvent e) {
String perstring = textArea_1.getText();// احصل على نص قائمة الموظفين
String[] PersonnelArray = perstring.split("/n{1,}");// احصل على مصفوفة الموظفين
int Index = (int) (Math.random() * memberArray.length); // إنشاء فهرس مصفوفة عشوائية
// تحديد المعلومات الفائزة بما في ذلك معلمات التنسيق
String formatArg = "أعضاء الجمهور في هذا السحب:/n/t%1$s/nتهانينا لـ %1$5s لفوزك بالجائزة الكبرى في سحب الجمهور هذا."
+ "/n/nسنمنح %1$5s:/n/t20 صندوقًا من الزبادي منتهي الصلاحية.";
// أضف معلمات الموظفين للحصول على المعلومات الفائزة
معلومات السلسلة = String.format(formatArg, memberArray[index]);
textArea.setText(info);// عرض المعلومات الفائزة في منطقة النص
}
الفراغ المحمي do_button_1_actionPerformed(ActionEvent e) {
System.exit(0);
}
}
التأثير كما هو موضح في الشكل: