Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建一个简单的表单应用程序来编辑文本文件_Java_Macos_Pyqt - Fatal编程技术网

Java 创建一个简单的表单应用程序来编辑文本文件

Java 创建一个简单的表单应用程序来编辑文本文件,java,macos,pyqt,Java,Macos,Pyqt,我想我需要重申我的问题 我想创建一个简单的表单应用程序,编辑一个非常特定的文本文件的某些区域。虽然我有一些web开发经验,但我不想创建基于浏览器的应用程序。基本上,我想尝试一下桌面应用程序,我正在寻找一些帮助,包括对所选语言的建议。应用程序应该在MacOSX上运行。此外,没有限制:Java、Cocoa、Python,甚至一些交互式shell脚本都可以 如果您对细节感兴趣,请继续阅读此处,但我的问题并非针对乳胶 我有一个自动生成的报告文件,其中包含LaTex代码。现在我想构建一个小应用程序,为每个

我想我需要重申我的问题

我想创建一个简单的表单应用程序,编辑一个非常特定的文本文件的某些区域。虽然我有一些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

  • 如果不改变JFrame的行为,就不要扩展它
    JPanel
    是其他组件的良好容器,它可以显示在
    JFrame

  • 始终在屏幕上构建GUI

  • 保持您的视图和模型


  • 实际上php脚本可以从命令行运行,您只需要安装解释器,而不是web服务器不知道这一点,只知道它适用于python。虽然这对我的案子没有帮助。如果我不信任用户让他编辑.tex文档,我不希望他安装一些解释器。。。无论如何,我学到了一些东西:)重新格式化的代码;请还原,如果不正确。Thx为有趣的链接,但我正在寻找一个开始,以建立自己的“编辑器”。呃,不是编辑。我想做的就是创建一个表单应用程序。@ran2:我已经详细阐述了上面的内容。thx!精心设计的版本真的很有帮助。我会努力解决的。Java似乎也是一个不错的选择。@ran2:太好了;我又添加了两个额外的link.thx。特别是SO线程看起来非常有用。我刚刚在最新的编辑中发布了我最初的代码。尽管笑吧,这是我的第二个Java“程序”——如果你把“hello world”算作一个程序的话。