From 288c8cfdd36c610a0b7a4d09c2ae361ce4e989a9 Mon Sep 17 00:00:00 2001 From: purl68fke <1650359169@qq.com> Date: Mon, 16 Jun 2025 09:24:11 +0800 Subject: [PATCH 1/5] Delete 'src' --- src | 1 - 1 file changed, 1 deletion(-) delete mode 100644 src diff --git a/src b/src deleted file mode 100644 index 66dc905..0000000 --- a/src +++ /dev/null @@ -1 +0,0 @@ -undefined \ No newline at end of file -- 2.34.1 From acfd58d646aecca97ef6a6a55df595e72eb51ba3 Mon Sep 17 00:00:00 2001 From: purl68fke <1650359169@qq.com> Date: Mon, 16 Jun 2025 09:24:26 +0800 Subject: [PATCH 2/5] Add src --- src | 1 + 1 file changed, 1 insertion(+) create mode 100644 src diff --git a/src b/src new file mode 100644 index 0000000..66dc905 --- /dev/null +++ b/src @@ -0,0 +1 @@ +undefined \ No newline at end of file -- 2.34.1 From c88e3ba48401c7efd3e180b5a074f77e99a7d0f3 Mon Sep 17 00:00:00 2001 From: purl68fke <1650359169@qq.com> Date: Mon, 16 Jun 2025 09:25:54 +0800 Subject: [PATCH 3/5] =?UTF-8?q?Delete=20'=E4=BF=AE=E6=94=B9=E5=90=8E?= =?UTF-8?q?=E4=BB=A3=E7=A0=81.txt'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 修改后代码.txt | 265 -------------------------------------------- 1 file changed, 265 deletions(-) delete mode 100644 修改后代码.txt diff --git a/修改后代码.txt b/修改后代码.txt deleted file mode 100644 index 3077d1e..0000000 --- a/修改后代码.txt +++ /dev/null @@ -1,265 +0,0 @@ -import javax.swing.*; -import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class Main { - private DefaultListModel listModel; - private JList taskList; - private JTextField taskField; - private JTextField dateField; - private JComboBox priorityComboBox; - private List data = new ArrayList<>(); - - public Main() { - JFrame frame = new JFrame("待办事项列表"); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - frame.setSize(600, 600); - - JPanel panel = new JPanel(); - panel.setLayout(new BorderLayout(10, 10)); - - // 设置中文字体 - Font font = new Font("微软雅黑", Font.PLAIN, 14); - UIManager.put("Label.font", font); - UIManager.put("TextField.font", font); - UIManager.put("ComboBox.font", font); - UIManager.put("Button.font", font); - UIManager.put("List.font", font); - UIManager.put("OptionPane.messageFont", font); - - listModel = new DefaultListModel<>(); - taskList = new JList<>(listModel); - taskList.setCellRenderer(new CustomListRenderer()); - panel.add(new JScrollPane(taskList), BorderLayout.CENTER); - - JPanel inputPanel = new JPanel(new GridLayout(4, 2, 10, 10)); - inputPanel.add(new JLabel("任务:")); - taskField = new JTextField(); - inputPanel.add(taskField); - - inputPanel.add(new JLabel("截止日期 (yyyy-mm-dd):")); - dateField = new JTextField(); - inputPanel.add(dateField); - - inputPanel.add(new JLabel("优先级:")); - String[] priorities = {"低", "中", "高"}; - priorityComboBox = new JComboBox<>(priorities); - inputPanel.add(priorityComboBox); - - JPanel buttonPanel = new JPanel(new GridLayout(1, 5, 10, 10)); - JButton addButton = new JButton("添加"); - JButton removeButton = new JButton("删除"); - JButton editButton = new JButton("编辑"); - JButton saveButton = new JButton("保存"); - JButton toggleButton = new JButton("完成"); - - buttonPanel.add(addButton); - buttonPanel.add(removeButton); - buttonPanel.add(editButton); - buttonPanel.add(saveButton); - buttonPanel.add(toggleButton); - - addButton.addActionListener(e -> addTask()); - removeButton.addActionListener(e -> removeTask()); - editButton.addActionListener(e -> editTask()); - saveButton.addActionListener(e -> saveTasks()); - toggleButton.addActionListener(e -> toggleTaskStatus()); - - panel.add(inputPanel, BorderLayout.NORTH); - panel.add(buttonPanel, BorderLayout.SOUTH); - - frame.add(panel); - frame.setVisible(true); - } - - private boolean validateDate(String dateStr) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - sdf.setLenient(false); - try { - Date date = sdf.parse(dateStr); - Date today = new Date(); - return date.after(today) || date.equals(today); - } catch (ParseException e) { - return false; - } - } - - private void addTask() { - String taskText = taskField.getText().trim(); - String dueDateText = dateField.getText().trim(); - String priority = (String) priorityComboBox.getSelectedItem(); - - if (taskText.isEmpty() || dueDateText.isEmpty()) { - JOptionPane.showMessageDialog(null, "请输入任务和截止日期!"); - return; - } - - if (!validateDate(dueDateText)) { - JOptionPane.showMessageDialog(null, "日期格式不正确或日期已过期!请使用格式:yyyy-mm-dd"); - return; - } - - TaskItem newTask = new TaskItem(taskText, dueDateText, priority); - listModel.addElement(newTask); - data.add(newTask); - taskField.setText(""); - dateField.setText(""); - priorityComboBox.setSelectedIndex(0); - } - - private void removeTask() { - int selectedIndex = taskList.getSelectedIndex(); - if (selectedIndex != -1) { - listModel.remove(selectedIndex); - data.remove(selectedIndex); - } else { - JOptionPane.showMessageDialog(null, "请选择要删除的任务!"); - } - } - - private void editTask() { - int selectedIndex = taskList.getSelectedIndex(); - if (selectedIndex != -1) { - TaskItem item = listModel.getElementAt(selectedIndex); - - String currentTask = item.getTask(); - String currentDueDate = item.getDueDate(); - String currentPriority = item.getPriority(); - - String newTask = JOptionPane.showInputDialog(null, "当前任务: " + currentTask + "\n请输入新任务:", currentTask); - if (newTask == null) return; - - String newDueDate = JOptionPane.showInputDialog(null, "当前截止日期: " + currentDueDate + "\n请输入新截止日期 (yyyy-mm-dd):", currentDueDate); - if (newDueDate == null) return; - - if (!validateDate(newDueDate)) { - JOptionPane.showMessageDialog(null, "日期格式不正确或日期已过期!请使用格式:yyyy-mm-dd"); - return; - } - - String[] priorities = {"低", "中", "高"}; - String newPriority = (String) JOptionPane.showInputDialog( - null, - "请选择优先级:", - "优先级选择", - JOptionPane.QUESTION_MESSAGE, - null, - priorities, - currentPriority - ); - if (newPriority == null) return; - - item.setTask(newTask); - item.setDueDate(newDueDate); - item.setPriority(newPriority); - - taskList.repaint(); - } else { - JOptionPane.showMessageDialog(null, "请选择要编辑的任务!"); - } - } - - private void toggleTaskStatus() { - int selectedIndex = taskList.getSelectedIndex(); - if (selectedIndex != -1) { - TaskItem item = listModel.getElementAt(selectedIndex); - item.toggleCompleted(); - taskList.repaint(); - } else { - JOptionPane.showMessageDialog(null, "请选择要切换状态的任务!"); - } - } - - private void saveTasks() { - JOptionPane.showMessageDialog(null, "任务已保存!"); - } - - public static void main(String[] args) { - SwingUtilities.invokeLater(Main::new); - } -} - -class TaskItem { - private String task; - private String dueDate; - private String priority; - private boolean isCompleted; - - public TaskItem(String task, String dueDate, String priority) { - this.task = task; - this.dueDate = dueDate; - this.priority = priority; - this.isCompleted = false; - } - - public void toggleCompleted() { - isCompleted = !isCompleted; - } - - public boolean isCompleted() { - return isCompleted; - } - - public String getTask() { - return task; - } - - public void setTask(String task) { - this.task = task; - } - - public String getDueDate() { - return dueDate; - } - - public void setDueDate(String dueDate) { - this.dueDate = dueDate; - } - - public String getPriority() { - return priority; - } - - public void setPriority(String priority) { - this.priority = priority; - } - @Override - public String toString() { - return task + " | 截止日期: " + dueDate + " | 优先级: " + priority; - } -} - -class CustomListRenderer extends DefaultListCellRenderer { - private final Icon checkIcon = new ImageIcon("✓"); - private final Icon uncheckIcon = new ImageIcon("✗"); - - @Override - public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { - JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); - - if (value instanceof TaskItem) { - TaskItem task = (TaskItem) value; - label.setIcon(task.isCompleted() ? checkIcon : uncheckIcon); - - // 设置不同优先级的颜色 - switch (task.getPriority()) { - case "高": - label.setForeground(Color.RED); - break; - case "中": - label.setForeground(Color.ORANGE); - break; - case "低": - label.setForeground(Color.GREEN); - break; - } - } - return label; - } -} \ No newline at end of file -- 2.34.1 From e356e4c0a47f7b0e0b1afeaf4e4a8a132aa7938a Mon Sep 17 00:00:00 2001 From: purl68fke <1650359169@qq.com> Date: Mon, 16 Jun 2025 09:26:04 +0800 Subject: [PATCH 4/5] =?UTF-8?q?Delete=20'=E6=9C=80=E7=BB=88=E4=BB=A3?= =?UTF-8?q?=E7=A0=81.txt'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 最终代码.txt | 273 ----------------------------------------------- 1 file changed, 273 deletions(-) delete mode 100644 最终代码.txt diff --git a/最终代码.txt b/最终代码.txt deleted file mode 100644 index 9b5d74f..0000000 --- a/最终代码.txt +++ /dev/null @@ -1,273 +0,0 @@ -import javax.swing.*; -import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class Main { - private DefaultListModel listModel; - private JList taskList; - private JTextField taskField; - private JTextField dateField; - private JComboBox priorityComboBox; - private List data = new ArrayList<>(); - - public Main() { - JFrame frame = new JFrame("待办事项列表"); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - frame.setSize(600, 600); - - JPanel panel = new JPanel(); - panel.setLayout(new BorderLayout(10, 10)); - - // 设置中文字体 - Font font = new Font("微软雅黑", Font.PLAIN, 14); - UIManager.put("Label.font", font); - UIManager.put("TextField.font", font); - UIManager.put("ComboBox.font", font); - UIManager.put("Button.font", font); - UIManager.put("List.font", font); - UIManager.put("OptionPane.messageFont", font); - - listModel = new DefaultListModel<>(); - taskList = new JList<>(listModel); - taskList.setCellRenderer(new CustomListRenderer()); - panel.add(new JScrollPane(taskList), BorderLayout.CENTER); - - JPanel inputPanel = new JPanel(new GridLayout(4, 2, 10, 10)); - inputPanel.add(new JLabel("任务:")); - taskField = new JTextField(); - inputPanel.add(taskField); - - inputPanel.add(new JLabel("截止日期 (yyyy-mm-dd):")); - dateField = new JTextField(); - inputPanel.add(dateField); - - inputPanel.add(new JLabel("优先级:")); - String[] priorities = {"低", "中", "高"}; - priorityComboBox = new JComboBox<>(priorities); - inputPanel.add(priorityComboBox); - - JPanel buttonPanel = new JPanel(new GridLayout(1, 5, 10, 10)); - JButton addButton = new JButton("添加"); - JButton removeButton = new JButton("删除"); - JButton editButton = new JButton("编辑"); - JButton saveButton = new JButton("保存"); - JButton toggleButton = new JButton("完成"); - - buttonPanel.add(addButton); - buttonPanel.add(removeButton); - buttonPanel.add(editButton); - buttonPanel.add(saveButton); - buttonPanel.add(toggleButton); - - addButton.addActionListener(e -> addTask()); - removeButton.addActionListener(e -> removeTask()); - editButton.addActionListener(e -> editTask()); - saveButton.addActionListener(e -> saveTasks()); - toggleButton.addActionListener(e -> toggleTaskStatus()); - - panel.add(inputPanel, BorderLayout.NORTH); - panel.add(buttonPanel, BorderLayout.SOUTH); - - frame.add(panel); - frame.setVisible(true); - } - - private boolean validateDate(String dateStr) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - sdf.setLenient(false); - try { - Date date = sdf.parse(dateStr); - Date today = new Date(); - return date.after(today) || date.equals(today); - } catch (ParseException e) { - return false; - } - } - - private void addTask() { - String taskText = taskField.getText().trim(); - String dueDateText = dateField.getText().trim(); - String priority = (String) priorityComboBox.getSelectedItem(); - - if (taskText.isEmpty() || dueDateText.isEmpty()) { - JOptionPane.showMessageDialog(null, "请输入任务和截止日期!"); - return; - } - - if (!validateDate(dueDateText)) { - JOptionPane.showMessageDialog(null, "日期格式不正确或日期已过期!请使用格式:yyyy-mm-dd"); - return; - } - - TaskItem newTask = new TaskItem(taskText, dueDateText, priority); - listModel.addElement(newTask); - data.add(newTask); - taskField.setText(""); - dateField.setText(""); - priorityComboBox.setSelectedIndex(0); - } - - private void removeTask() { - int selectedIndex = taskList.getSelectedIndex(); - if (selectedIndex != -1) { - listModel.remove(selectedIndex); - data.remove(selectedIndex); - } else { - JOptionPane.showMessageDialog(null, "请选择要删除的任务!"); - } - } - - private void editTask() { - int selectedIndex = taskList.getSelectedIndex(); - if (selectedIndex != -1) { - TaskItem item = listModel.getElementAt(selectedIndex); - - String currentTask = item.getTask(); - String currentDueDate = item.getDueDate(); - String currentPriority = item.getPriority(); - - String newTask = JOptionPane.showInputDialog(null, "当前任务: " + currentTask + "\n请输入新任务:", currentTask); - if (newTask == null) return; - - String newDueDate = JOptionPane.showInputDialog(null, "当前截止日期: " + currentDueDate + "\n请输入新截止日期 (yyyy-mm-dd):", currentDueDate); - if (newDueDate == null) return; - - if (!validateDate(newDueDate)) { - JOptionPane.showMessageDialog(null, "日期格式不正确或日期已过期!请使用格式:yyyy-mm-dd"); - return; - } - - String[] priorities = {"低", "中", "高"}; - String newPriority = (String) JOptionPane.showInputDialog( - null, - "请选择优先级:", - "优先级选择", - JOptionPane.QUESTION_MESSAGE, - null, - priorities, - currentPriority - ); - if (newPriority == null) return; - - item.setTask(newTask); - item.setDueDate(newDueDate); - item.setPriority(newPriority); - - taskList.repaint(); - } else { - JOptionPane.showMessageDialog(null, "请选择要编辑的任务!"); - } - } - - private void toggleTaskStatus() { - int selectedIndex = taskList.getSelectedIndex(); - if (selectedIndex != -1) { - TaskItem item = listModel.getElementAt(selectedIndex); - item.toggleCompleted(); - taskList.repaint(); - } else { - JOptionPane.showMessageDialog(null, "请选择要切换状态的任务!"); - } - } - - private void saveTasks() { - JOptionPane.showMessageDialog(null, "任务已保存!"); - } - - public static void main(String[] args) { - SwingUtilities.invokeLater(Main::new); - } -} - -class TaskItem { - private String task; - private String dueDate; - private String priority; - private boolean isCompleted; - - public TaskItem(String task, String dueDate, String priority) { - this.task = task; - this.dueDate = dueDate; - this.priority = priority; - this.isCompleted = false; - } - - public void toggleCompleted() { - isCompleted = !isCompleted; - } - - public boolean isCompleted() { - return isCompleted; - } - - public String getTask() { - return task; - } - - public void setTask(String task) { - this.task = task; - } - - public String getDueDate() { - return dueDate; - } - - public void setDueDate(String dueDate) { - this.dueDate = dueDate; - } - - public String getPriority() { - return priority; - } - - public void setPriority(String priority) { - this.priority = priority; - } - @Override - public String toString() { - return task + " | 截止日期: " + dueDate + " | 优先级: " + priority; - } -} - -class CustomListRenderer extends DefaultListCellRenderer { - @Override - public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { - JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); - - if (value instanceof TaskItem) { - TaskItem task = (TaskItem) value; - - // 使用文字标记任务状态 - String status = task.isCompleted() ? "[完成] " : "[未完成] "; - label.setText(status + task.toString()); - - // 设置不同优先级的颜色 - switch (task.getPriority()) { - case "高": - label.setForeground(Color.RED); - break; - case "中": - label.setForeground(Color.ORANGE); - break; - case "低": - label.setForeground(Color.GREEN); - break; - } - - // 如果任务已完成,添加删除线并变灰 - if (task.isCompleted()) { - label.setFont(label.getFont().deriveFont(Font.PLAIN | Font.ITALIC)); - label.setForeground(Color.GRAY); - } else { - label.setFont(label.getFont().deriveFont(Font.PLAIN)); - } - } - return label; - } -} \ No newline at end of file -- 2.34.1 From f0157fcffd2a5f132a3b1ee22a3834b161b49094 Mon Sep 17 00:00:00 2001 From: purl68fke <1650359169@qq.com> Date: Mon, 16 Jun 2025 09:26:14 +0800 Subject: [PATCH 5/5] =?UTF-8?q?Delete=20'=E6=BA=90=E4=BB=A3=E7=A0=81.txt'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 源代码.txt | 185 -------------------------------------------------- 1 file changed, 185 deletions(-) delete mode 100644 源代码.txt diff --git a/源代码.txt b/源代码.txt deleted file mode 100644 index 56a06d9..0000000 --- a/源代码.txt +++ /dev/null @@ -1,185 +0,0 @@ -import javax.swing.*; -import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.ArrayList; -import java.util.List; - -public class Main { - private DefaultListModel listModel; - private JList taskList; - private JTextField taskField; - private JTextField dateField; - private List data = new ArrayList<>(); // Array to store data - - public Main() { - // Create main window - JFrame frame = new JFrame("To-Do List"); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - frame.setSize(500, 500); // Increase window size - - // Main panel - JPanel panel = new JPanel(); - panel.setLayout(new BorderLayout(10, 10)); // Add margin - - // Task list - listModel = new DefaultListModel<>(); - taskList = new JList<>(listModel); - taskList.setCellRenderer(new CustomListRenderer()); - panel.add(new JScrollPane(taskList), BorderLayout.CENTER); - - // Input panel (for entering task and due date) - JPanel inputPanel = new JPanel(new GridLayout(3, 2, 10, 10)); // GridLayout with margin - inputPanel.add(new JLabel("Task:")); - taskField = new JTextField(); - inputPanel.add(taskField); - - inputPanel.add(new JLabel("Due Date (dd-mm-yyyy):")); - dateField = new JTextField(); - inputPanel.add(dateField); - - // Buttons panel - JPanel buttonPanel = new JPanel(new GridLayout(1, 5, 10, 10)); // 5 buttons - JButton addButton = new JButton("Add"); - JButton removeButton = new JButton("Remove"); - JButton editButton = new JButton("Edit"); - JButton saveButton = new JButton("Save"); - JButton toggleButton = new JButton("Completed"); - - // Add buttons to panel - buttonPanel.add(addButton); - buttonPanel.add(removeButton); - buttonPanel.add(editButton); - buttonPanel.add(saveButton); - buttonPanel.add(toggleButton); - - // Add action listeners to buttons - addButton.addActionListener(e -> addTask()); - removeButton.addActionListener(e -> removeTask()); - editButton.addActionListener(e -> editTask()); - saveButton.addActionListener(e -> saveTasks()); - toggleButton.addActionListener(e -> toggleTaskStatus()); - - // Add panels to main panel - panel.add(inputPanel, BorderLayout.NORTH); - panel.add(buttonPanel, BorderLayout.SOUTH); - - // Add panel to frame - frame.add(panel); - frame.setVisible(true); - } - - // Add a new task - private void addTask() { - String taskText = taskField.getText().trim(); - String dueDateText = dateField.getText().trim(); - if (!taskText.isEmpty() && !dueDateText.isEmpty()) { - TaskItem newTask = new TaskItem(taskText, dueDateText); - listModel.addElement(newTask); // Add to list - data.add(newTask); // Add to array - taskField.setText(""); - dateField.setText(""); - } - } - - // Remove a task - private void removeTask() { - int selectedIndex = taskList.getSelectedIndex(); - if (selectedIndex != -1) { - listModel.remove(selectedIndex); // Remove from list - data.remove(selectedIndex); // Remove from array - } - } - - // Edit a task - private void editTask() { - int selectedIndex = taskList.getSelectedIndex(); - if (selectedIndex != -1) { - String newTaskText = JOptionPane.showInputDialog("Enter new task:"); - String newDueDateText = JOptionPane.showInputDialog("Enter new due date (yyyy-mm-dd):"); - if (newTaskText != null && newDueDateText != null) { - TaskItem item = listModel.getElementAt(selectedIndex); - item.setTask(newTaskText); - item.setDueDate(newDueDateText); - taskList.repaint(); // Refresh list - } - } - } - - // Mark task as completed - private void toggleTaskStatus() { - int selectedIndex = taskList.getSelectedIndex(); - if (selectedIndex != -1) { - TaskItem item = listModel.getElementAt(selectedIndex); - item.toggleCompleted(); - taskList.repaint(); // Refresh list - } - } - - // Save tasks (only in memory) - private void saveTasks() { - JOptionPane.showMessageDialog(null, "Tasks saved!"); - } - - public static void main(String[] args) { - SwingUtilities.invokeLater(Main::new); - } -} - -// Task class -class TaskItem { - private String task; - private String dueDate; - private boolean isCompleted; - - public TaskItem(String task, String dueDate) { - this.task = task; - this.dueDate = dueDate; - this.isCompleted = false; - } - - public void toggleCompleted() { - isCompleted = !isCompleted; - } - - public boolean isCompleted() { - return isCompleted; - } - - public String getTask() { - return task; - } - - public void setTask(String task) { - this.task = task; - } - - public String getDueDate() { - return dueDate; - } - - public void setDueDate(String dueDate) { - this.dueDate = dueDate; - } - - @Override - public String toString() { - return (isCompleted ? "✓ " : "✗ ") + task + " (" + dueDate + ")"; - } -} - -// Custom list renderer for better UI -class CustomListRenderer extends DefaultListCellRenderer { - private ImageIcon checkIcon = new ImageIcon("check.png"); - private ImageIcon uncheckIcon = new ImageIcon("uncheck.png"); - - @Override - public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { - JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); - if (value instanceof TaskItem) { - TaskItem task = (TaskItem) value; - label.setIcon(task.isCompleted() ? checkIcon : uncheckIcon); - } - return label; - } -} -- 2.34.1