首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这是用Java创建文件模型的好代码吗?

这是用Java创建文件模型的好代码吗?
EN

Stack Overflow用户
提问于 2016-10-21 12:49:32
回答 1查看 586关注 0票数 0

我有一个博客,它的主页由Jekyll提供。要用Jekyll创建一个新的帖子,您需要将一些信息放在文件的标题中,其中至少包含以下细节:

代码语言:javascript
复制
---
layout: [layout]
title: [title]
date: [date]
---

文件名中必须包含日期。例如:

代码语言:javascript
复制
2016-10-21-name-of-the-post.md

我用Java创建了一个带有GUI的程序来自动格式化文件。所以我只需要写内容。我得知道这是不是个好代码。要避免的事情在哪里?请注意,我是一个新的程序员。

这是代码:

代码语言:javascript
复制
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Scanner;
import java.io.PrintWriter;
import java.io.IOException;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Post extends JFrame implements ActionListener{

    // GUI THINGS
    JPanel pl = new JPanel();
    JTextField tfLayout = new JTextField("layout: default", 20);
    JTextField tfTitle = new JTextField("title:", 20);
    JTextField tffl = new JTextField("filename", 20);
    JTextArea tfDes = new JTextArea("Text",10,20);
    JButton b1 = new JButton("Post immediately");

    String filename = "/path/to/the/_posts/folder";
    PrintWriter pw = null;
    Scanner sc = new Scanner(System.in);
    DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
    String layout = "";
    String title = "";
    String description = "";
    Date date = new Date();
    String actualdate = df.format(date);
    JTextField tfDate = new JTextField("date: " + actualdate);
    String format;

    public Post(){
        super("Nouveau post");
        filename += new SimpleDateFormat("yyyy-MM-dd").format(new Date()) + "-";
        setContentPane(pl);
        setLayout(new GridLayout(5,1));
        tfDes.setLineWrap(true);
        tfDes.setWrapStyleWord(true);
        pl.add(tffl);
        pl.add(tfLayout);
        pl.add(tfTitle);
        pl.add(tfDate);
        pl.add(tfDes);
        pl.add(b1);

        b1.addActionListener(this);

    }

    public static void main(String[] args){

        Post window = new Post();
        window.pack();
        window.setLocationRelativeTo(null);
        window.setSize(400, 300);
        window.setVisible(true);
    }

    public void actionPerformed(ActionEvent ae) {       
        layout = tfLayout.getText();
        filename += tffl.getText() + ".md";
        title = tfTitle.getText();
        description = tfDes.getText();
        actualdate = tfDate.getText();

        format = "---\n" + layout + "\n" + title + "\n" + actualdate +
            "\n---\n<p>" + description + "</p>";

        try {
            pw = new PrintWriter(filename, "UTF-8");
        } catch(IOException io) {
            System.out.println("ERROR while creating the file");
        }

        pw.print(format);
        pw.close();

        JOptionPane.showMessageDialog(this, "Sucesssfully created a post.");
        this.dispose();  
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-21 12:53:28

这个问题太笼统了。

但我建议将您的代码拆分为模型视图演示器。将Post放到自己的类中,将视图的逻辑放入自己的类中,并实现一个处理输入的演示程序。如果您对好代码有进一步的兴趣,我还建议您阅读一些关于清洁编码的内容(如RobertC.Martin)。

此外,为常量设置最终变量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40177110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档