简单Java编辑器GUI

简单Java编辑器GUI,java,Java,您好,我为简单Java编辑器创建GUI代码 我创建了菜单,但我需要匹配 文件:新建:创建新文件。询问文件名(因此也是公共类)以及存储该文件的目录。随着文件的创建,文件被插入到公共类的结构中,例如公共类MyClass{} 打开:使用源代码java(.java)打开文件。 保存:将当前代码段保存在同一文件中,并在创建过程中建立该文件。 另存为:显示一个对话框,在该对话框中,您可以请求文件名,文件将存储在其中的目录的格式。格式为java文件(.java)。窗口的主要部分将有一个编辑器,供用户用于编辑源

您好,我为简单Java编辑器创建GUI代码

我创建了菜单,但我需要匹配 文件:新建:创建新文件。询问文件名(因此也是公共类)以及存储该文件的目录。随着文件的创建,文件被插入到公共类的结构中,例如公共类MyClass{}

打开:使用源代码java(.java)打开文件。 保存:将当前代码段保存在同一文件中,并在创建过程中建立该文件。 另存为:显示一个对话框,在该对话框中,您可以请求文件名,文件将存储在其中的目录的格式。格式为java文件(.java)。窗口的主要部分将有一个编辑器,供用户用于编辑源Java文件

窗口的主要部分将有一个编辑器,供用户用于编辑源Java文件。在处理代码段期间将被更新的信息:java源代码中的数字行数字保留字

格式化文本


每个文件都将以格式化方式打开,并在按照以下规则处理时进行格式化:java的保留字将以蓝色显示。 评论将以绿色显示 带橙色的字符串文本 其他都是黑色的 字体大小为12磅

我将提供GUI代码,有人能帮我完成上述工作吗

问候 安东尼斯

}


我还提供了一个模型:


首先,你应该看看这门课。它提供了创建、打开、修改和保存文件的方法。要读取文件,您可能还需要给或任何其他阅读器一次机会

  • 创建文件:
    file
    具有该方法,请将其与
    exists()
    结合使用
  • 要打开和读取文件,请使用try with resource(Java手册中实际上有一个很好的例子)
  • 要保存文件,您应该签出,它可以写入字符串或将字符串附加到文件中
  • 对于编辑器,您可能希望将前面提到的
    BufferedReader
    替换为
    LineReader
    ,后者还提供获取行号的方法。除此之外,你必须自己弄清楚如何给线路编号。(事实上,它只是在谷歌上到处搜索,会有一些类似的想法——我没有详细检查,但可能会有所帮助)
  • 当然,对于编辑器,您应该首先将文件读入字符串,对其使用格式化程序,然后可以在需要时显示它并重新格式化
除了这些提示之外,我无法为您提供更详细的答案,因为您也可以在评论中阅读,如果您提供更详细的问题,会更容易。您现在给了我们一个GUI,它几乎与您的实际问题无关。
向我们展示一些你的(有问题的)工作,我们可以帮助你,但除此之外,我们只能像我刚才那样给你一些提示。所以,试着想想你的问题,试着问一些更准确的答案,如果你愿意,试着提出一些新问题。

但别忘了查看网站以获取答案,对我来说,我想问的几乎所有问题都已经以类似的方式在某个地方问过了。

您好,让我们把工作分成几个步骤

首先,我想创建新的,打开,保存,另存为,导出到pdf菜单和事件

下面是我使用的代码,GUI框架正确打开,带有new、open、save、save as、export到pdf标签,但作为操作,什么也没有发生

有人能给我写正确的代码吗?请记住,我是一个java初学者

public EEMenuBar() {
        super();

        fileMenu = new JMenu("File");
        //Create the New menu item
        newItem = new JMenuItem("New");
        newItem.setMnemonic(KeyEvent.VK_N);
        newItem.addActionListener(new ActionListener(){

            @Override
            public void actionPerformed(ActionEvent arg0) {

            }

        });

        fileMenu.add(newItem);

        openItem = new JMenuItem("Open");
        openItem.setMnemonic(KeyEvent.VK_0);
        openItem.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent arg0) {
                /*TODO Open existing java source file*/

            }

        });

        fileMenu.add(openItem);

        saveItem = new JMenuItem("Save");
        saveItem.setMnemonic(KeyEvent.VK_S);
        saveItem.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                /*TODO save changes to file*/                                       
            }

        });

        fileMenu.add(saveItem);

        saveAsItem = new JMenuItem("Save As");
        saveAsItem.setMnemonic(KeyEvent.VK_A);
        saveAsItem.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                /*TODO Save as new java source file*/
            }               
        });

        fileMenu.add(saveAsItem);

        exportItem = new JMenuItem("Export to pdf");
        exportItem.setMnemonic(KeyEvent.VK_E);
        exportItem.addActionListener(new ActionListener(){

            @Override
            public void actionPerformed(ActionEvent arg0) {
                // TODO save as pdf(formatted)

            }
        });

        fileMenu.add(exportItem);           

请试着缩小你的问题范围,这样你可能会有更高的机会得到答案。你应该尽可能地将问题最小化和完整删除噪音..以得到一个快速的答案,可能是一个好的答案!问题是什么?你有什么问题?
//class Main 

package editor.app;

import javax.swing.JFrame;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

import elearning.editor.gui.EEFrame;
import elearning.editor.util.EECodeFormater;
import elearning.editor.util.EEJavaWordCounter;
import elearning.editor.util.EELineCounter;

public class EEditor {

    /**
     * @param args
     */
    public static void main(String[] args) {

        try {
            // Set cross-platform Java L&F (also called "Metal")
            //UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());

            //Set Motif L&F
            //UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");

            //Set Nimbus L&F
            //UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");

            //Set System L&F
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

            //Set GTK L&F --> Same as System L&F on Linux and Solaris\
            //UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");

            //Set Windows L&F --> Same as System L&F on Windows
            //UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
        } 
        catch (UnsupportedLookAndFeelException e) {
            // handle exception
        }
        catch (ClassNotFoundException e) {
            // handle exception
        }
        catch (InstantiationException e) {
            // handle exception
        }
        catch (IllegalAccessException e) {
            // handle exception
        }

        EEFrame frame = new EEFrame();

        frame.setSize(500, 600);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);


        /* TODO Instatiate Threads */


        /*TODO Start Threads */

    }

}
public EEMenuBar() {
        super();

        fileMenu = new JMenu("File");
        //Create the New menu item
        newItem = new JMenuItem("New");
        newItem.setMnemonic(KeyEvent.VK_N);
        newItem.addActionListener(new ActionListener(){

            @Override
            public void actionPerformed(ActionEvent arg0) {

            }

        });

        fileMenu.add(newItem);

        openItem = new JMenuItem("Open");
        openItem.setMnemonic(KeyEvent.VK_0);
        openItem.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent arg0) {
                /*TODO Open existing java source file*/

            }

        });

        fileMenu.add(openItem);

        saveItem = new JMenuItem("Save");
        saveItem.setMnemonic(KeyEvent.VK_S);
        saveItem.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                /*TODO save changes to file*/                                       
            }

        });

        fileMenu.add(saveItem);

        saveAsItem = new JMenuItem("Save As");
        saveAsItem.setMnemonic(KeyEvent.VK_A);
        saveAsItem.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                /*TODO Save as new java source file*/
            }               
        });

        fileMenu.add(saveAsItem);

        exportItem = new JMenuItem("Export to pdf");
        exportItem.setMnemonic(KeyEvent.VK_E);
        exportItem.addActionListener(new ActionListener(){

            @Override
            public void actionPerformed(ActionEvent arg0) {
                // TODO save as pdf(formatted)

            }
        });

        fileMenu.add(exportItem);