Java 阶段学习总结

之前倒是没有接触过Java。现在来学Java会被一部分人嗤之以鼻。就对现在而言,语言中种类很多,技术层出不穷,各种框架。尤其前端的应用框架越来越多。哪怕我使用jQuery也会被所谓的前端大牛鄙视一把。.

为什么要学Java。语言这玩意的争论没有意义。匠人会把注意力放在工具上么?会也只有不到5%的注意力。

用 Java 写了记事本以及坦克游戏。

代码(记事本):

package javatest;

import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.UIManager;

public class JavaTest extends JFrame implements ActionListener {

    JTextArea jta = null;
    JScrollPane scroll = null;
    JMenuBar jmb = null;
    JMenu jm1 = null;
    JMenuItem jmi1 = null;
    JMenuItem jmi2 = null;
    JMenuItem jmi3 = null;
    JMenuItem jmi4 = null;
    JMenu jm2 = null;

    public JavaTest() {
        jta = new JTextArea();
        // 滚动条 自动出现
        scroll = new JScrollPane(jta);
        scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);

        jmb = new JMenuBar();
        jm1 = new JMenu("文件");
        jm2 = new JMenu("帮助");
        jmi1 = new JMenuItem("打开");
        jmi2 = new JMenuItem("保存");
        jmi3 = new JMenuItem("退出");
        jmi4 = new JMenuItem("关于 (v 1.0)");

        jmi1.addActionListener(this);
        jmi1.setActionCommand("open");

        jmi2.addActionListener(this);
        jmi2.setActionCommand("save");

        jmi3.addActionListener(this);
        jmi3.setActionCommand("exit");

        jm1.add(jmi1);
        jm1.add(jmi2);
        jm1.add(jmi3);
        jm2.add(jmi4);
        jmb.add(jm1);
        jmb.add(jm2);

        this.setJMenuBar(jmb);
        this.add(scroll);
    }

    public static void main(String[] args) {
        // 设置字体
        Font font = new Font("宋体", Font.PLAIN, 12);
        String names[] = {"Label", "CheckBox", "PopupMenu", "MenuItem", "CheckBoxMenuItem",
            "JRadioButtonMenuItem", "ComboBox", "Button", "Tree", "ScrollPane",
            "TabbedPane", "EditorPane", "TitledBorder", "Menu", "TextArea",
            "OptionPane", "MenuBar", "ToolBar", "ToggleButton", "ToolTip",
            "ProgressBar", "TableHeader", "Panel", "List", "ColorChooser",
            "PasswordField", "TextField", "Table", "Label", "Viewport",
            "RadioButtonMenuItem", "RadioButton", "DesktopPane", "InternalFrame"
        };

        for (String item : names) {
            UIManager.put(item + ".font", font);
        }
        JavaTest text = new JavaTest();
        text.jshow();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        String filepath;
        switch (e.getActionCommand()) {
            case "exit":
                System.out.println("退出");
                System.exit(0);
            case "open":
                System.out.println("打开文件");
                JFileChooser jfco = new JFileChooser();
                jfco.setDialogTitle("打开...");
                jfco.showOpenDialog(null);
                if (jfco.getSelectedFile() == null) {
                    return;
                }
                filepath = jfco.getSelectedFile().getAbsoluteFile().getPath();
                System.out.println(filepath);
                FileReader fr = null;
                BufferedReader br = null;
                String fileCon = "";
                 {
                    try {
                        fr = new FileReader(filepath);
                        br = new BufferedReader(fr);
                        String tmp;
                        while ((tmp = br.readLine()) != null) {
                            fileCon += tmp + "\r\n";
                        }
                    } catch (FileNotFoundException ex) {
                        Logger.getLogger(JavaTest.class.getName()).log(Level.SEVERE, null, ex);
                    } catch (IOException ex) {
                        Logger.getLogger(JavaTest.class.getName()).log(Level.SEVERE, null, ex);
                    } finally {
                        try {
                            br.close();
                        } catch (IOException ex) {
                            Logger.getLogger(JavaTest.class.getName()).log(Level.SEVERE, null, ex);
                        }
                        try {
                            fr.close();
                        } catch (IOException ex) {
                            Logger.getLogger(JavaTest.class.getName()).log(Level.SEVERE, null, ex);
                        }
                    }
                }
                jta.setText(fileCon);
                System.out.println(filepath);
                break;
            case "save":
                System.out.println("另存为");
                JFileChooser jfcs = new JFileChooser();
                jfcs.setDialogTitle("另存为...");
                jfcs.showOpenDialog(null);
                if (jfcs.getSelectedFile() == null) {
                    return;
                }
                filepath = jfcs.getSelectedFile().getAbsoluteFile().getPath();
                FileWriter fw = null;
                BufferedWriter bw = null;
                 {
                    try {
                        fw = new FileWriter(filepath);
                        bw = new BufferedWriter(fw);
                        bw.write(jta.getText());
                    } catch (IOException ex) {
                        Logger.getLogger(JavaTest.class.getName()).log(Level.SEVERE, null, ex);
                    } finally {
                        try {
                            bw.close();
                        } catch (IOException ex) {
                            Logger.getLogger(JavaTest.class.getName()).log(Level.SEVERE, null, ex);
                        }
                        try {
                            fw.close();
                        } catch (IOException ex) {
                            Logger.getLogger(JavaTest.class.getName()).log(Level.SEVERE, null, ex);
                        }
                    }
                }
                break;
            default:
                break;
        }
    }

    public void jshow() {
        this.setTitle("记事本");
        this.setSize(400, 300);
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
    }

}


坦克游戏的git地址:https://github.com/uduemc/TankGame

运行如下图:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值