我想我需要重申我的问题......
我想创建一个简单的表单应用程序来编辑一个非常特定的文本文件的某些区域。虽然我有一些网络开发经验,但我不想创建基于浏览器的应用程序。基本上,我想尝试一下桌面应用程序,并且正在寻找一些入门帮助,包括对所选语言的建议。该应用程序应该在 Mac OS X 上运行。此外没有任何限制:Java、Cocoa、Python,甚至一些交互式 shell 脚本也可以。
如果您对详细信息感兴趣,请继续阅读此处,但并不是说我的问题不是 LaTex 特定的......: 我有一个自动生成的报告文件,其中包含 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 和其他所见即所得的 LaTeX 方法——我不想重新发明轮子。我只是想保护自动生成的代码免受用户的影响,并让他们感到更舒服。
编辑: 这是我的第一次尝试。我想我应该使用 PlainDocument 而不是直接发送它,但我会弄清楚这一点,因为我从trashgod 那里得到了编辑器/文本组件链接的大量帮助。主要问题是从\section{} 和\normalsize{} 中挑选出内容。也许我会在这里使用一些正则表达式。我需要为每次出现获取一个新的文本区域。
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);
}
}
提前感谢您的任何建议!
最佳答案
TeX on Mac OS X维基推荐jEdit ,支持plugins 。 LaTeXTools也许是一个好的开始。
附录:
I do not want to reinvent the wheel.
All I want to do is create a form application.
尽管这些目标有些矛盾,但您始终可以解析文件并使用合适的 JTextComponent
对于每个可编辑部分。以下是 Using Text Components 的概述;请参阅Text Component Features如果您想创建自己的编辑器套件,如 Customizing a Text Editor 中所述.
附录:除了教程之外,您还可以查看此 text field layout example 。另外,考虑两列 JTable
,这将允许您将文档模型与表单 View 完全分离。
附录:关于代码的一些注释。
关于java - 创建一个简单的表单应用程序来编辑文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3377401/