From 2949a48e6330c8ff9f7d81b70b592be0507bec6b Mon Sep 17 00:00:00 2001 From: jsh <1209700525@qq.com> Date: Sun, 12 Oct 2025 12:05:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8swing=20=E5=8F=AF=E8=A7=86?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 28 +++++++++++++++ src/main/java/com/dota/App.java | 59 ++++++++++++++++++++++++++++++++ src/main/java/com/dota/Main.java | 13 ++++--- 3 files changed, 93 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/dota/App.java diff --git a/pom.xml b/pom.xml index 3bb60fb..a2a6cda 100644 --- a/pom.xml +++ b/pom.xml @@ -26,4 +26,32 @@ + + + + org.apache.maven.plugins + maven-assembly-plugin + 3.6.0 + + + + com.dota.App + + + + jar-with-dependencies + + + + + make-assembly + package + + single + + + + + + \ No newline at end of file diff --git a/src/main/java/com/dota/App.java b/src/main/java/com/dota/App.java new file mode 100644 index 0000000..660ae0b --- /dev/null +++ b/src/main/java/com/dota/App.java @@ -0,0 +1,59 @@ +package com.dota; + +import javax.swing.*; +import java.awt.*; + +public class App { + public static void main(String[] args) { + SwingUtilities.invokeLater(App::lanuch); + } + + static String[] doctors = new String[]{"顾磊", "章亮", "唐婷婷", "杨祖怡", "李宁", "周晖"}; + + static void lanuch() { + JFrame jframe = new JFrame("排班系统"); + jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + jframe.setSize(600,400); + jframe.setLayout(new BorderLayout(10, 10)); + + var dateField = new JTextField("2025-10-13"); + var weekNumField = new JTextField("2"); + var filePathField = new JTextField("C:\\Users\\yangz\\Documents\\医生排班.xlsx"); + var doctorField = new JComboBox<>(doctors); + doctorField.setSelectedIndex(0); + var resText = new JTextArea("点击确定按钮,输出执行结果"); + var btn = new JButton("确定"); + + // 输入区域 + JPanel inputPanel = new JPanel(new GridLayout(4,2,10,5)); + jframe.add(inputPanel, BorderLayout.NORTH); + inputPanel.add(new JLabel("排班日期")); + inputPanel.add(dateField); + inputPanel.add(new JLabel("排班周数")); + inputPanel.add(weekNumField); + inputPanel.add(new JLabel("第一个值班的医生")); + inputPanel.add(doctorField); + inputPanel.add(new JLabel("输出文件位置")); + inputPanel.add(filePathField); + + //结果区域 + JPanel resPanel = new JPanel(); + jframe.add(resPanel, BorderLayout.CENTER); + resPanel.add(resText); + + // 按钮区域 + var btnPanel = new JPanel(); + jframe.add(btnPanel, BorderLayout.SOUTH); + btnPanel.add(btn); + + btn.addActionListener(e->{ + resText.setText("运行中,请稍等"); + Main.run(dateField.getText(), Integer.parseInt(weekNumField.getText()), (String) doctorField.getSelectedItem(), filePathField.getText()); + resText.setText("运行结束,请查看排班文件"); + }); + + + jframe.setLocationRelativeTo(null); + jframe.setVisible(true); + } +} diff --git a/src/main/java/com/dota/Main.java b/src/main/java/com/dota/Main.java index 5ab9f74..6e9b1bc 100644 --- a/src/main/java/com/dota/Main.java +++ b/src/main/java/com/dota/Main.java @@ -7,7 +7,6 @@ import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileOutputStream; -import java.text.DateFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.*; @@ -31,6 +30,10 @@ public class Main { static LocalDate day; public static void main(String[] args) { + run("2025-10-13", 2, "周晖", "C:\\Users\\yangz\\Documents\\医生排班.xlsx"); + } + + static void run(String date, int weekNum, String name, String file){ init(); var doctorOrder = new Doctor[]{ gl, zl, ttt, zy, ln, zh @@ -39,12 +42,8 @@ public class Main { ln, zy, ttt, zl, zh, gl, tgy }; -// var s = new ArrayList(); -// for (int i = -1; i < 2; i++) { -// s.addAll(schedule(doctorOrder, outputOrder)); -// } -// print(s); - write("2025-10-13", 4, "顾磊", doctorOrder, outputOrder); + filePath = file; + write(date, weekNum, name, doctorOrder, outputOrder); }