Я думаю, мне нужно переформулировать мой вопрос ...
Я хочу создать ПРОСТОЕ приложение формы, которое редактирует определенные области одного очень специфического текстового файла.Хотя у меня есть некоторый опыт веб-разработки, я не хочу создавать браузерное приложение.По сути, я хочу попробовать приложение для настольных компьютеров и ищу некоторую помощь для начала, включая предложения по выбору языка.Приложение должно работать на Mac OS X. Кроме того, нет никаких ограничений: Java, Cocoa, Python, даже какой-нибудь интерактивный сценарий оболочки будет в порядке.
Если вас интересуют подробности, продолжайте читать здесь, но не о том, что мой вопрос не относится к 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 раз.Все, что я хочу, это небольшой графический интерфейс, который позволяет пользователю редактировать фигурные скобки, не видя код TeX.Я знаю, что есть LyX и другие WYSIWYG подходы к 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);
}
}
Заранее спасибо за любые предложения!