Java 创建一个简单的表单应用程序来编辑文本文件
我想我需要重申我的问题 我想创建一个简单的表单应用程序,编辑一个非常特定的文本文件的某些区域。虽然我有一些web开发经验,但我不想创建基于浏览器的应用程序。基本上,我想尝试一下桌面应用程序,我正在寻找一些帮助,包括对所选语言的建议。应用程序应该在MacOSX上运行。此外,没有限制:Java、Cocoa、Python,甚至一些交互式shell脚本都可以 如果您对细节感兴趣,请继续阅读此处,但我的问题并非针对乳胶 我有一个自动生成的报告文件,其中包含LaTex代码。现在我想构建一个小应用程序,为每个部分及其标题创建一个表单字段。该文档仅包含几百行,并且应满足以下要求:Java 创建一个简单的表单应用程序来编辑文本文件,java,macos,pyqt,Java,Macos,Pyqt,我想我需要重申我的问题 我想创建一个简单的表单应用程序,编辑一个非常特定的文本文件的某些区域。虽然我有一些web开发经验,但我不想创建基于浏览器的应用程序。基本上,我想尝试一下桌面应用程序,我正在寻找一些帮助,包括对所选语言的建议。应用程序应该在MacOSX上运行。此外,没有限制:Java、Cocoa、Python,甚至一些交互式shell脚本都可以 如果您对细节感兴趣,请继续阅读此处,但我的问题并非针对乳胶 我有一个自动生成的报告文件,其中包含LaTex代码。现在我想构建一个小应用程序,为每个
\section{ This is were the header text should go inside the document }
\normalsize{ This is where the normal text should go}
标题/正常大小对在文档中出现5-6次。我想要的只是一个小GUI,它允许用户在大括号之间进行编辑,而不需要看到任何TeX代码。我知道乳胶有LyX和其他WYSIWYG方法——我不想重新发明轮子。我只是想保护自动生成的代码不受用户的影响,让他们觉得更舒服一点
编辑:
这是我的第一次尝试。我想我应该使用PlainDocument,而不是直接发送它,但我会弄明白的,因为我在编辑器/文本组件链接方面得到了垃圾神的大量帮助。主要问题是从\section{}和\normalsize{}内容中挑出内容。也许我会在这里用一些regexp。我需要得到一个新的文本区域的每个外观
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.io.FileReader;
import javax.swing.*;
public class basicFrame extends JFrame {
// Declare Variables
JScrollPane bildlauf = new JScrollPane();
JTextArea txtfeld = new JTextArea();
public basicFrame() {
super();
// Main window
setTitle("ReportEditor");
setBackground(Color.LIGHT_GRAY);
// components
try {
File datei = new File("report.Rnw");
FileReader in = new FileReader(datei);
txtfeld.read(in, datei);
in.close();
} catch (Exception e) {
System.out.println("Error !");
}
// setLayout(new GridLayout(2,2));
// Scroll Shizzle
bildlauf.getViewport().add(txtfeld, null);
getContentPane().add(bildlauf, BorderLayout.CENTER);
//txtfeld.setSize(500,680);
//add(txtfeld);
//this.getContentPane().add(txtfeld);
// close
addWindowListener(new WindowLauscher());
}
// event handlers...
protected static final class WindowLauscher extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
public static void main(String[] args) {
//Fesnter erzeugen und anzeigen, die main Sache halt
basicFrame hf = new basicFrame();
hf.setSize(500, 700);
hf.setLocation(100, 100);
hf.setVisible(true);
}
}
如有任何建议,请提前致电Thx wiki推荐,它支持。也许是个好的开始
增编:
我不想重新发明轮子。我只想创建一个表单应用程序 尽管这些目标有些矛盾,但您始终可以解析文件并使用适合每个可编辑部分的方法。这里是一个概述;查看是否要创建自己的编辑器工具包,如中所述 附录:除了教程之外,您还可以看看这个。此外,考虑两列,这将允许您将文档模型与窗体视图进行干净的分离。 附录:关于代码的一些注释
BasicFrame
JPanel
是其他组件的良好容器,它可以显示在JFrame
中实际上php脚本可以从命令行运行,您只需要安装解释器,而不是web服务器不知道这一点,只知道它适用于python。虽然这对我的案子没有帮助。如果我不信任用户让他编辑.tex文档,我不希望他安装一些解释器。。。无论如何,我学到了一些东西:)重新格式化的代码;请还原,如果不正确。Thx为有趣的链接,但我正在寻找一个开始,以建立自己的“编辑器”。呃,不是编辑。我想做的就是创建一个表单应用程序。@ran2:我已经详细阐述了上面的内容。thx!精心设计的版本真的很有帮助。我会努力解决的。Java似乎也是一个不错的选择。@ran2:太好了;我又添加了两个额外的link.thx。特别是SO线程看起来非常有用。我刚刚在最新的编辑中发布了我最初的代码。尽管笑吧,这是我的第二个Java“程序”——如果你把“hello world”算作一个程序的话。