diff --git a/DGcreate/.idea/.name b/DGcreate/.idea/.name new file mode 100644 index 0000000..0ce9de5 --- /dev/null +++ b/DGcreate/.idea/.name @@ -0,0 +1 @@ +FileType.java \ No newline at end of file diff --git a/DGcreate/.idea/inspectionProfiles/Project_Default.xml b/DGcreate/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..801f533 --- /dev/null +++ b/DGcreate/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/DGcreate/.idea/uiDesigner.xml b/DGcreate/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/DGcreate/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/DGcreate/.idea/vcs.xml b/DGcreate/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/DGcreate/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/DGcreate/src/assembly/Branch.java b/DGcreate/src/assembly/Branch.java new file mode 100644 index 0000000..0afc7b5 --- /dev/null +++ b/DGcreate/src/assembly/Branch.java @@ -0,0 +1,5 @@ +package assembly; + +public class Branch { + +} diff --git a/DGcreate/src/assembly/Trigger.java b/DGcreate/src/assembly/Trigger.java new file mode 100644 index 0000000..9605ab6 --- /dev/null +++ b/DGcreate/src/assembly/Trigger.java @@ -0,0 +1,21 @@ +package assembly; + +import java.awt.event.MouseEvent; + +public class Trigger { + int Mouse; + MouseEvent mouse; + public void mouseClicked(MouseEvent arg0){ + if(arg0.getButton() == MouseEvent.BUTTON1){ + Mouse = 1; + } else if (arg0.getButton() == MouseEvent.BUTTON2) { + Mouse = 2; + } else if (arg0.getButton() == MouseEvent.BUTTON3) { + Mouse = 3; + } + } + public int getMouse(){ + mouseClicked(mouse); + return Mouse; + } +} diff --git a/DGcreate/src/compound/Backgroud.java b/DGcreate/src/compound/Backgroud.java new file mode 100644 index 0000000..c2b13ad --- /dev/null +++ b/DGcreate/src/compound/Backgroud.java @@ -0,0 +1,4 @@ +package compound; + +public class Backgroud { +} diff --git a/DGcreate/src/compound/Bgm.java b/DGcreate/src/compound/Bgm.java new file mode 100644 index 0000000..1640e96 --- /dev/null +++ b/DGcreate/src/compound/Bgm.java @@ -0,0 +1,4 @@ +package compound; + +public class Bgm { +} diff --git a/DGcreate/src/compound/Character.java b/DGcreate/src/compound/Character.java new file mode 100644 index 0000000..ed26b8a --- /dev/null +++ b/DGcreate/src/compound/Character.java @@ -0,0 +1,22 @@ +package compound; + +import assembly.Trigger; + +public class Character { + int NowPattern = 0; + int Pattern[] = new int[100]; + static int i = 0; + Character(int Character_Group[]){ + Pattern = Character_Group; + } + public void Show(){ + //将改代号的图片输出 + } + public void nextPattern(){ + Trigger trigger = new Trigger(); + if(trigger.getMouse() == 1) { + NowPattern = Pattern[i]; + i++; + } + } +} diff --git a/DGcreate/src/compound/Text.java b/DGcreate/src/compound/Text.java new file mode 100644 index 0000000..8c61753 --- /dev/null +++ b/DGcreate/src/compound/Text.java @@ -0,0 +1,17 @@ +package compound; + +import assembly.Trigger; + +public class Text { + int i = 0; + String TextBox[] = new String[100]; + Text(){ + //将资源中的文本分段输入TextBox中 + } + public void nextText(){ + Trigger trigger = new Trigger(); + if(trigger.getMouse() == 1) { + //输出下一句textbox到文本 + } + } +} diff --git a/DGcreate/src/joggle/joggle.java b/DGcreate/src/joggle/joggle.java new file mode 100644 index 0000000..c13ffdd --- /dev/null +++ b/DGcreate/src/joggle/joggle.java @@ -0,0 +1,65 @@ +package joggle; +import javax.swing.*; +import javax.swing.filechooser.FileNameExtensionFilter; +import java.awt.Desktop; +import java.io.*; + +public class joggle { + public static class JFileChooserDemo{ + public static void fileFilter(JFileChooser fd, String flag){ + if(flag == "maindow"){ + fd.setApproveButtonText("确定"); + fd.setFileFilter(new FileNameExtensionFilter("DRC(*.drc)", "drc")); + fd.setAcceptAllFileFilterUsed(false); + } + else if(flag == "resource"){ + fd.setApproveButtonText("确定"); + fd.setFileFilter(new FileNameExtensionFilter("image(*.jpg,*.jpeg,*.png)", "drc")); + fd.setAcceptAllFileFilterUsed(false); + } + else if(flag == "look"){ + fd.setApproveButtonText("确定"); + fd.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); + fd.setAcceptAllFileFilterUsed(false); + } + } + public static boolean open_resource(){ + JFileChooser fd = new JFileChooser(); + //fd.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); + fileFilter(fd, "mindow"); + int val = fd.showOpenDialog(null); + if(val == fd.APPROVE_OPTION){ + fd.getSelectedFile(); + return true; + } + else{ + return false; + } + } + } + + public static void copyFile(String oldPath, String newPath) { + try { + int bytesum = 0; + int byteread = 0; + File oldfile = new File(oldPath); + if (oldfile.exists()) { // 文件存在时 + InputStream inStream = new FileInputStream(oldPath); // 读入原文件 + FileOutputStream fs = new FileOutputStream(newPath); + byte[] buffer = new byte[1444]; + int length; + while ((byteread = inStream.read(buffer)) != -1) { + bytesum += byteread; // 字节数 文件大小 + System.out.println(bytesum); + fs.write(buffer, 0, byteread); + } + inStream.close(); + } + } catch (Exception e) { + System.out.println("复制单个文件操作出错"); + e.printStackTrace(); + } + } +} + + diff --git a/DGcreate/src/menu/CreateWindow.java b/DGcreate/src/menu/CreateWindow.java new file mode 100644 index 0000000..315c2b0 --- /dev/null +++ b/DGcreate/src/menu/CreateWindow.java @@ -0,0 +1,149 @@ +package menu; + +import javax.swing.*; +import joggle.joggle; + +import java.awt.*; +import java.awt.datatransfer.DataFlavor; +import java.awt.datatransfer.Transferable; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.io.File; +import java.util.List; + +public class CreateWindow { + private static JFrame page = new JFrame("创作窗口"); + private static JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT)); + private static JPanel resource_panel = new JPanel(); + //创作资源面板 + private static JPanel main_panel = new JPanel(); + //主播放面板 + private static JPanel assembly_panel = new JPanel(); + //组件面板 + private static JPanel edit_panel = new JPanel(); + //编辑面板 + public static void setPage(){ + page.setSize(1500,1000); + page.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); + page.setResizable(false); + page.setLocationRelativeTo(null); + page.setVisible(true); + resource_panel.setPreferredSize(new Dimension(450,500)); + resource_panel.setBorder(BorderFactory.createTitledBorder("创作资源")); + main_panel.setPreferredSize(new Dimension(1000,500)); + main_panel.setBorder(BorderFactory.createTitledBorder("播放窗口")); + assembly_panel.setPreferredSize(new Dimension(450,450)); + assembly_panel.setBorder(BorderFactory.createTitledBorder("组件")); + edit_panel.setPreferredSize(new Dimension(1000,450)); + edit_panel.setBorder(BorderFactory.createTitledBorder("操作栏")); + page.add(panel); + panel.add(resource_panel); + panel.add(main_panel); + panel.add(assembly_panel); + panel.add(edit_panel); + } + public static class Set_resource_panel{ + Set_resource_panel(){ + + } + public static void choose_file(){ + JFrame frame = new JFrame("File Drag and Drop"); + JLabel label = new JLabel("Drag and drop a file here."); + + label.setTransferHandler(new TransferHandler() { + @Override + public boolean canImport(TransferSupport support) { + // 检查是否支持拖放文件 + return support.isDataFlavorSupported(DataFlavor.javaFileListFlavor); + } + + @SuppressWarnings("unchecked") + @Override + public boolean importData(TransferSupport support) { + // 处理拖放操作 + if (!canImport(support)) { + return false; + } + Transferable transferable = support.getTransferable(); + try { + List files = (List) transferable.getTransferData(DataFlavor.javaFileListFlavor); + for (File file : files) { + System.out.println(file.getAbsolutePath()); + // 在此处处理文件 + // ... + } + } catch (Exception e) { + e.printStackTrace(); + return false; + } + return true; + } + }); + + label.addMouseListener(new MouseAdapter() { + @Override + public void mousePressed(MouseEvent e) { + JComponent c = (JComponent) e.getSource(); + TransferHandler handler = c.getTransferHandler(); + handler.exportAsDrag(c, e, TransferHandler.COPY); + } + }); + + frame.getContentPane().add(label); + frame.setSize(400, 300); + frame.setLocationRelativeTo(null); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.setVisible(true); + + } + + } + public static void remove_file(){ + + } + public static class Set_main_panel{ + public static void play(){ + + } + public static void suspend(){ + + } + } + public static class Set_assembly_panel{ + public static void choose_assembly(){ + + } + } + public static class Set_edit_panel{ + Set_edit_panel(){ + + } + public static void set_track(){ + + } + public static void delete_track(){ + + } + public static void shield_track(){ + + } + public static void open_sound(){ + + } + public static void close_sound(){ + + } + public static void open_frame(){ + + } + public static void close_frame(){ + + } + public static void track_magnetic_attraction(){ + + } + public static void delete_trackResource(){ + + } + } +} diff --git a/DGcreate/src/menu/FileType.java b/DGcreate/src/menu/FileType.java new file mode 100644 index 0000000..cf95e86 --- /dev/null +++ b/DGcreate/src/menu/FileType.java @@ -0,0 +1,35 @@ +package menu; +import sun.misc.BASE64Encoder; +import java.io.*; +import java.nio.charset.StandardCharsets; + + +public class FileType { + public static String change_sound_io(File media){ + BASE64Encoder encoder = new BASE64Encoder(); + try{ + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + byte[] bytes = byteArrayOutputStream.toByteArray(); + FileInputStream in = new FileInputStream(media); + in.read(bytes); + in.close(); + return encoder.encodeBuffer(bytes).trim(); + }catch(IOException e1){ + e1.printStackTrace(); + return "false"; + } + } + public static void input_File(String str) { + File file = new File(MainWindow.ReturnFile + MainWindow.Filename); + try { + FileOutputStream fileOutputStream = new FileOutputStream(file, true); + try { + fileOutputStream.write(str.getBytes(StandardCharsets.UTF_8)); + } catch (IOException e1) { + e1.printStackTrace(); + } + } catch (FileNotFoundException e1) { + e1.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/DGcreate/src/menu/MainWindow.java b/DGcreate/src/menu/MainWindow.java new file mode 100644 index 0000000..97b7a8f --- /dev/null +++ b/DGcreate/src/menu/MainWindow.java @@ -0,0 +1,126 @@ +package menu; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import joggle.joggle; +import java.io.*; + + +//主窗口 +public class MainWindow extends menu { + private static JFrame page = new JFrame("主菜单"); + private static JFrame create_page = new JFrame("创建"); + private static JTextField fileName = new JTextField(); + private static Container c = page.getContentPane(); + private static Container c1 = create_page.getContentPane(); + private static int flag = 0; + protected static String ReturnFile; + protected static String Filename; + //创建主窗口 + public static void main(String[] args) { + page.setSize(1500,1000); + page.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); + page.setResizable(false); + page.setLocationRelativeTo(null); + page.setVisible(true); + c.setLayout(null); + new_create(); + open(); + } + public static void setCreate_page(){ + create_page.setSize(800,600); + create_page.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); + create_page.setResizable(false); + create_page.setLocationRelativeTo(null); + create_page.setVisible(true); + c1.setLayout(null); + if(flag == 0){ + setFileName(); + create(); + cancel(); + } + } + //创建新的创作 + public static void new_create() { + JButton b = new JButton("创建"); + b.setBounds(625,300,250,50); + c.add(b); + b.setDefaultCapable(true); + b.setVisible(true); + //鼠标触发事件 + b.addActionListener(new AbstractAction() { + public void actionPerformed(ActionEvent e) { + setCreate_page(); + } + }); + } + //打开 + public static void open(){ + JButton b = new JButton("打开"); + b.setBounds(625,400,250,50); + c.add(b); + b.setDefaultCapable(true); + b.setVisible(true); + //鼠标触发事件 + b.addActionListener(new AbstractAction() { + @Override + public void actionPerformed(ActionEvent e) { + joggle.JFileChooserDemo.open_resource(); + } + }); + } + //创建文件 + public static void create(){ + JButton b = new JButton("创建"); + b.setBounds(260,300,250,50); + c1.add(b); + b.setDefaultCapable(true); + b.setVisible(true); + b.addActionListener(new AbstractAction() { + @Override + public void actionPerformed(ActionEvent e) { + JFileChooser fd = new JFileChooser(); + joggle.JFileChooserDemo.fileFilter(fd,"look"); + int val = fd.showOpenDialog(null); + if(val == fd.APPROVE_OPTION){ + File file = fd.getSelectedFile(); + file.getPath(); + //获取预览地址 + ReturnFile = file.getPath(); + try { + File newfile = new File(file, fileName.getText() + ".drc"); + Filename = fileName.getText()+".drc"; + newfile.createNewFile(); + //创建文件,格式为自创drc格式 + }catch (IOException e1){ + e1.printStackTrace(); + } + CreateWindow.setPage(); + page.setVisible(false); + create_page.setVisible(false); + //打开创作窗口 + } + } + }); + } + public static void setFileName(){ + fileName.setBounds(260,200,250,50); + c1.add(fileName); + fileName.setVisible(true); + } + public static void cancel(){ + JButton b = new JButton("取消"); + b.setBounds(260,400,250,50); + c1.add(b); + b.setDefaultCapable(true); + b.setVisible(true); + b.addActionListener(new AbstractAction() { + @Override + public void actionPerformed(ActionEvent e) { + create_page.setVisible(false); + flag++; + } + }); + } +} diff --git a/DGcreate/src/menu/menu.java b/DGcreate/src/menu/menu.java index 5fe99a6..422e7a5 100644 --- a/DGcreate/src/menu/menu.java +++ b/DGcreate/src/menu/menu.java @@ -1,13 +1,22 @@ package menu; import javax.swing.*; -public class menu { +//公用菜单抽象类 +abstract public class menu { + //主界面窗口 public static void main(String[] args){ - JFrame page = new JFrame("主菜单"); - page.setSize(800,450); - page.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); - page.setResizable(false); - page.setLocationRelativeTo(null); - page.setVisible(true); + + } + //问题反馈 + public void feedback(){ + + } + //帮助 + public void help(){ + + } + //设置 + public void settings(){ + } }