简单Java编辑器GUI
您好,我为简单Java编辑器创建GUI代码 我创建了菜单,但我需要匹配 文件:新建:创建新文件。询问文件名(因此也是公共类)以及存储该文件的目录。随着文件的创建,文件被插入到公共类的结构中,例如公共类MyClass{} 打开:使用源代码java(.java)打开文件。 保存:将当前代码段保存在同一文件中,并在创建过程中建立该文件。 另存为:显示一个对话框,在该对话框中,您可以请求文件名,文件将存储在其中的目录的格式。格式为java文件(.java)。窗口的主要部分将有一个编辑器,供用户用于编辑源Java文件 窗口的主要部分将有一个编辑器,供用户用于编辑源Java文件。在处理代码段期间将被更新的信息:java源代码中的数字行数字保留字 格式化文本简单Java编辑器GUI,java,Java,您好,我为简单Java编辑器创建GUI代码 我创建了菜单,但我需要匹配 文件:新建:创建新文件。询问文件名(因此也是公共类)以及存储该文件的目录。随着文件的创建,文件被插入到公共类的结构中,例如公共类MyClass{} 打开:使用源代码java(.java)打开文件。 保存:将当前代码段保存在同一文件中,并在创建过程中建立该文件。 另存为:显示一个对话框,在该对话框中,您可以请求文件名,文件将存储在其中的目录的格式。格式为java文件(.java)。窗口的主要部分将有一个编辑器,供用户用于编辑源
每个文件都将以格式化方式打开,并在按照以下规则处理时进行格式化:java的保留字将以蓝色显示。 评论将以绿色显示 带橙色的字符串文本 其他都是黑色的 字体大小为12磅 我将提供GUI代码,有人能帮我完成上述工作吗 问候 安东尼斯 }
我还提供了一个模型:
首先,你应该看看这门课。它提供了创建、打开、修改和保存文件的方法。要读取文件,您可能还需要给或任何其他阅读器一次机会
- 创建文件:
具有该方法,请将其与file
结合使用exists()
- 要打开和读取文件,请使用try with resource(Java手册中实际上有一个很好的例子)
- 要保存文件,您应该签出,它可以写入字符串或将字符串附加到文件中
- 对于编辑器,您可能希望将前面提到的
替换为BufferedReader
,后者还提供获取行号的方法。除此之外,你必须自己弄清楚如何给线路编号。(事实上,它只是在谷歌上到处搜索,会有一些类似的想法——我没有详细检查,但可能会有所帮助)LineReader
- 当然,对于编辑器,您应该首先将文件读入字符串,对其使用格式化程序,然后可以在需要时显示它并重新格式化
向我们展示一些你的(有问题的)工作,我们可以帮助你,但除此之外,我们只能像我刚才那样给你一些提示。所以,试着想想你的问题,试着问一些更准确的答案,如果你愿意,试着提出一些新问题。
但别忘了查看网站以获取答案,对我来说,我想问的几乎所有问题都已经以类似的方式在某个地方问过了。您好,让我们把工作分成几个步骤 首先,我想创建新的,打开,保存,另存为,导出到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);