تفاصيل العمل

package com.mycompany.todolistapp;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.util.ArrayList;

public class ToDolistApp extends JFrame {

private DefaultListModel<String> listModel;

private JList<String> taskList;

private JTextField taskField;

private ArrayList<String> tasks;

public ToDolistApp() {

setTitle("To-Do List App");

setSize(400, 400);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setLocationRelativeTo(null);

tasks = new ArrayList<>();

listModel = new DefaultListModel<>();

taskList = new JList<>(listModel);

JScrollPane scrollPane = new JScrollPane(taskList);

taskField = new JTextField();

JButton addButton = new JButton("Add Task");

JButton deleteButton = new JButton("Delete Task");

// Panel for input + buttons

JPanel panel = new JPanel();

panel.setLayout(new GridLayout(1, 3));

panel.add(taskField);

panel.add(addButton);

panel.add(deleteButton);

add(scrollPane, BorderLayout.CENTER);

add(panel, BorderLayout.SOUTH);

// Add button action

addButton.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

String task = taskField.getText().trim();

if (!task.isEmpty()) {

tasks.add(task);

listModel.addElement(task);

taskField.setText("");

} else {

JOptionPane.showMessageDialog(null, "Please enter a task!");

}

}

});

// Delete button action

deleteButton.addActionListener((ActionEvent e) -> {

int selectedIndex = taskList.getSelectedIndex();

if (selectedIndex != -1) {

tasks.remove(selectedIndex);

listModel.remove(selectedIndex);

} else {

JOptionPane.showMessageDialog(null, "Select a task to delete!");

}

});

}

public static void main(String[] args) {

SwingUtilities.invokeLater(() -> {

new ToDolistApp().setVisible(true);

});

}

}

نوع المشروع: تطبيق سطح مكتب (Desktop Application).

اللغة: Java (باستخدام مكتبة Swing للواجهات الرسومية).

الغرض: برنامج يساعد المستخدم على إدارة قائمة مهامه اليومية (إضافة / حذف / عرض المهام).

مميزاته

1. واجهة رسومية بسيطة وسهلة الاستخدام (قائمة بالمهام + أزرار تحكم).

2. إضافة مهمة جديدة بكتابة النص والضغط على زر "Add Task".

3. حذف مهمة من القائمة بالضغط على زر "Delete Task".

4. تنظيم المهام في شكل قائمة (JList).

5. تخزين مؤقت للمهام باستخدام ArrayList (ممكن تطويره لاحقًا لحفظ في ملف أو قاعدة بيانات).

6. رسائل تنبيهية عند محاولة إضافة مهمة فارغة أو حذف بدون تحديد.

بطاقة العمل

اسم المستقل
عدد الإعجابات
0
عدد المشاهدات
1
تاريخ الإضافة
المهارات