精华内容
下载资源
问答
  • 我之前也一直在找这样的项目,准备作为毕业项目,找工作时候的谈资:贯穿整个java知识点的,用到ssh,或者ssm框架,这样就可以让自己对java有一个整体的,清晰的认识。什么OA人事管理系统,什么ERP系统,找出来都不太...

    我之前也一直在找这样的项目,准备作为毕业项目,找工作时候的谈资:贯穿整个java知识点的,用到ssh,或者ssm框架,这样就可以让自己对java有一个整体的,清晰的认识。什么OA人事管理系统,什么ERP系统,找出来都不太适合我,后来真的被我找到一个项目,它是一个很用心的自学网站

    Java 全栈工程师 | 以实例驱动学习 |how2j.cn​how2j.cn

    网站分为一个个小的学习模块,有视频教学,还有题目和答案,让你动手边学边做。以下5个部分都做成了一个独立的项目,下载后运行可以直接看到效果。

    3149ef194dea5824ff87a1860d7d312b.png

    8683436b607f9f216bfa7592b45b2f9e.png

    以下是项目效果

    仿天猫整站:

    14eb31591b7d2f782cf1689e5517a3ba.png

    一本糊涂账:

    0ea58133d0f46557322a0b0db268a03f.png

    ------------------------------------------分割线---------------------------------------------

    最近有博友留言或私信我,问了这个问题:

    这是一个阶段性教程还是帮助你构思项目的呢?

    我认为两个都有,里面包含前端,ssm,ssh,等部分,每个部分都做成了一个独立的项目,下载可以直接运行了看到效果了,其实呢我还是建议先下载里面前端部分然后尝试自己搭建框架,遇到不会的再去看看别人的,思考为什么会这样做,好处在哪里?这样才能真正锻炼项目开发能力,跟着别人思路走,下次自己做又无从下手了,因为没有经历构思阶段的锻炼和挣扎,编程思维是很难被拓宽的,我作为过来人对这点是深有体会的,别人的只能作为你某个疑难点的参考,你说是不是呢?

    展开全文
  • 适合新手练手项目 java初学者 视频+源码+笔记都有度娘链接永久有效
  • JAVASE基础阶段练手项目 ATM银行系统 实现一个简单的ATM系统 1、登录注册功能(账号(卡号),密码(大小写字母+数字+其他符号)) 2、账户类、每个用户拥有独立的信息(卡号、密码、用户名、账户余额、取款额度) ...

    JAVASE基础阶段练手项目

    ATM银行系统

    • 实现一个简单的ATM系统
    • 1、登录注册功能(账号(卡号),密码(大小写字母+数字+其他符号))
    • 2、账户类、每个用户拥有独立的信息(卡号、密码、用户名、账户余额、取款额度)
    • 3.1、查询功能,可以显示账户信息
    • 3.2、存取款功能
    • 3.3、转账功能
    • 3.4、汇款功能(通过输入相应的账户名、卡号,汇给对方账户内的金额)
    • 4、账号信息更改
    • 5管理员(账号:adminster 密码:14520)
    • 5.1、可以看到集合内的所有的对象信息
    • 由于目前只是初步学习了集合的思想,和最基础的JAVA语法,所以整个系统代码显得十分臃肿,难以读取,但是照着我的思路走还是十分简单的
      */
      ATMDemo
    package ATMSystem;
    
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.Random;
    import java.util.Scanner;
    
    /**
     * 实现一个简单的ATM系统
     * 1、登录注册功能(账号(卡号),密码(大小写字母+数字+其他符号))
     * 2、账户类、每个用户拥有独立的信息(卡号、密码、用户名、账户余额、取款额度)
     * 3.1、查询功能,可以显示账户信息
     * 3.2、存取款功能
     * 3.3、转账功能
     * 3.4、汇款功能(通过输入相应的账户名、卡号,汇给对方账户内的金额)
     * 4、账号信息更改
     * 5管理员(账号:adminster 密码:14520)
     * 5.1、可以看到集合内的所有的对象信息
     * 由于目前只是初步学习了集合的思想,和最基础的JAVA语法,所以整个系统代码显得十分臃肿,难以读取,但是照着我的思路走还是十分简单的
     */
    //问题
    /*
    
     * */
    public class ATMDemo {
    
    
        public static void main(String[] args) {
            ArrayList<User> users = new ArrayList<>();
            ArrayList<Systemer> systemers = new ArrayList<>();
            while (true) {
                System.out.println("=========欢迎进入ATM系统,请登录========");
                Time();
                Scanner sc = new Scanner(System.in);
                User users1 = new User();
                System.out.println("             请输入数字      ");
                System.out.println("1:             登录");
                System.out.println("2:             注册");
                System.out.println("3:          进入管理系统");
    //            System.out.println("4:            退出ATM系统");
    /*            System.out.println("3:           查询用户信息");
                System.out.println("4:            账户操作");
                System.out.println("5:          用户信息更改");*/
                System.out.println("6:            退出ATM系统");
    
                System.out.println();
                String choose = sc.next();
                switch (choose) {
                    case "1":
                        System.out.println("登录");
                        Sign(users, users1, sc);
    
                        break;
                    case "2":
                        System.out.println("注册");
                        register(users, users1, sc);
                        break;
                    case "3":
                        System.out.println("----管理员登录---");
                        sign_system(systemers, users, sc);
                        System.out.println(" ");
    
                        break;
                      /*  break;
                    case "4":
                        System.out.println("账户操作");
    
                        break;
                    case "5":
                        System.out.println("用户信息更改");
    
                        break;*/
                    case "6":
                        System.out.println("=====欢迎下次使用====");
                        System.exit(0);
                        break;
                    default:
                        System.out.println("=====您输入的有误请重新输入=====");
                }
    
    
            }
        }
    
    
        //    用户登录注册功能
        public static void Sign(ArrayList<User> users, User users1, Scanner sc) {
            if (users.size() > 0) {
                while (true) {
    
                    System.out.println("请输入账户");
                    String s = sc.next();
                    int index = -1;
                    User users2 = new User();
    
                    for (int i = 0; i < users.size(); i++) {
                        users2 = users.get(i);
                        if (users2.getAccount().equals(s)) {
                            System.out.println("请输入密码");
                            String mima = sc.next();
                            if (mima.equals(users2.getPassword())) {
                                index = i;
    //                    找到了开始进行下一步操作
                                System.out.println("             登陆成功\n请输入如下操作\n");
                                Time();
                                while (true) {
                                    System.out.println("3:           查询用户信息");
                                    System.out.println("4:            账户操作");
                                    System.out.println("5:          用户信息更改");
                                    System.out.println("6:            返回登录界面");
    //                                System.out.println("0:             进入管理员");
                                    String choose = sc.next();
                                    switch (choose) {
                                        case "3":
                                            Information(users, users2);
                                            break;
                                        case "4":
                                            Change(sc);
                                            String choose2 = sc.next();
                                            switch (choose2) {
                                                case "1":
                                                    Addmoney(users, users2, sc);
                                                    break;
                                                case "2":
                                                    Reducemoney(users, users2, sc);
                                                    break;
                                                case "3":
                                                    Exchange(users, users2, sc);
                                                    break;
                                            }
                                            break;
                                        case "5":
                                            Changeinformation(users, users2, sc);
                                            break;
                                        case "6":
    //                                System.exit(0);
                                            return;
                                     /*   case "0":
                                            System.out.println("----先跳过这个待完善功能:管理员登录---");
                                            System.out.println("");
                                            if (users.size() != 0) {
                                                Showall(users);
                                            } else {
                                                System.out.println("系统内无数据");
                                            }
                                            break;*/
    
                                        default:
                                            System.out.println("您输入的有误请重新输入");
    
                                    }
                                }
                            } else {
                                System.out.println("您输入的密码有误,请重新输入");
                                break;
    
                            }
    
    
                        }
    
                    }
                    System.out.println("系统内没有符合的账号,请重新输入");
    
                }
            } else {
                System.out.println("系统内没有账户,请先注册后再登录");
            }
    
            /*System.out.println("请输入用户名");
            String ID_s = sc.nextLine();
    
            System.out.println("请输入用户密码");
            String Password_s = sc.nextLine();*/
    
        }
    
        private static void Exchange(ArrayList<User> users, User users2, Scanner sc) {
            System.out.println("=====转账界面=====");
            System.out.println("您目前的账户信息:");
            Information(users, users2);
            System.out.println("请输入您要转帐的卡号");
            String s = sc.next();
    
    
            System.out.println("请输入要转账的账户名");
            String sname = sc.next();
            int index = -1;
            for (int i = 0; i < users.size(); i++) {
                boolean flage = ((users.get(i).getID()).equals(s));
                boolean flag2 = (users.get(i).getAccount()).equals(sname);
                if (flage && flag2) {
                    index = i;
                    System.out.println("请输入您要转帐的金额");
                    double exchangdeyuan = sc.nextDouble();
                    if (users2.getCexIOBalance() > 0) {
                        int n = 3;
                        while (n > 0) {
                            System.out.println("请输入您的密码");
                            String certainpasswo = sc.next();
    
                            if (certainpasswo.equals(users2.getPassword())) {
                                System.out.println("密码正确开始转账");
                                users2.setCexIOBalance(users2.getCexIOBalance() - exchangdeyuan);
    //            记住取款额度的限制
                                users2.setGetWithdrawals(users2.getGetWithdrawals() - exchangdeyuan);
    
                                System.out.println("====您的账户目前的信息======");
                                Information(users, users2);
    //            对方的账户数字也会相应的改变
                                users.get(index).setCexIOBalance(users.get(index).getCexIOBalance() + exchangdeyuan);
                                break;
                            } else {
                                System.out.println("密码错误,请重新输入");
                                /*增加一个验证,还有输入超过三次就会锁定账号*/
                                --n;
                            }
                            System.out.println("您的账号已被锁定无法转账,请24H后再转");
    
                        }
                    } else {
                        System.out.println("无法转账,因为您的账户内不够");
                    }
                }
    
            }
    
    
        }
    
        //注册功能
        public static void register(ArrayList<User> users, User users1, Scanner sc) {
            System.out.println("=========欢迎进入注册界面===========");
    
            System.out.println("请输入用户名");
            String username = sc.next();
            users1.setAccount(username);
            while (true) {
                System.out.println("请输入用户密码(大小写字母+数字+其他符号)");
                String password = sc.next();
                System.out.println("请再输一次密码");
                String password2 = sc.next();
                if (password.equals(password2)) {
                    if (CheckM(password)) {
                        users1.setPassword(password);
                        System.err.println("密码设置成功");
    
                        IDrandom(users, users1);
    /*
    //       系统随机分配卡号ID
                        System.out.println("您的卡号为:" + IDrandom(users) + "\n请您记好");
    */
    
                        break;
                    } else {
                        System.out.println("两次输入的密码不一致,请重新输入");
                    }
                } else {
                    System.out.println("您输入的密码格式有误请重新输入(大小写字母+数字+其他符号)");
                }
    
            }
    
    
        }
    
        //检查输入的用户是否正确
        public static boolean CheckM(String s) {
            boolean flag = true;
            while (flag) {
    
                int len = s.length();
                int Big = 0, Small = 0, dig = 0, other = 0;
    
                int[] arr = new int[len];
                for (int i = 0; i < len; i++) {
                    arr[i] = s.charAt(i);
    
                }
    
                for (int i = 0; i < arr.length; i++) {
                  /*  if (arr[i] <= 'A' && arr[i] >= 'Z') {
                        break;*/
                    if (arr[i] >= 'A' && arr[i] <= 'Z') {
                        Big++;
                    } else if (arr[i] >= 'a' && arr[i] <= 'z') {
                        Small++;
                    } else if (arr[i] >= '0' && arr[i] <= '9') {
                        dig++;
                    } else {
                        other++;
                    }
    
                }
                if (Big * Small * dig * other != 0) {
                    flag = false;
                }
    
    
            }
    
            return true;
        }
    
        //        随机分配8位卡号ID
        public static void IDrandom(ArrayList<User> users, User users1) {
            String sb = "";
    
            for (int i = 0; i < 8; i++) {
                Random r = new Random();
                int line = r.nextInt(10);
                sb += line;
    
            }
    //        到这里已经添加了ID到系统内
            users1.setID(sb);
            users.add(users1);
            System.out.println("请记好您的银行卡号");
            System.out.println(users1.getID());
    
        }
    
        //    单独用户信息显示
        public static void Information(ArrayList<User> users, User users1) {
    
            System.out.println("账户名\t账户卡号\t  账户余额\t账户剩余取款额度");
    
    
            System.out.println(users1.getAccount() + "   \t"
                    + users1.getID() + "\t"
                    + users1.getCexIOBalance() + "\t   "
                    + users1.getGetWithdrawals());
        }
    
        //所有账户的信息
        public static void Showall(ArrayList<User> users) {
            System.out.println("账户名\t账户卡号\t  账户余额\t账户剩余取款额度");
            for (int i = 0; i < users.size(); i++) {
    
                System.out.println(users.get(i).getAccount() + "   \t"
                        + users.get(i).getID() + "\t"
                        + users.get(i).getCexIOBalance() + "\t  "
                        + users.get(i).getGetWithdrawals());
            }
        }
    
        //             账户操作
        public static void Change(Scanner sc) {
            System.out.println("请选择您要存钱还是取钱");
            System.out.println("1:存钱");
            System.out.println("2:取钱");
            System.out.println("3:转账");
    
        }
    
        //    存款
        public static void Addmoney(ArrayList<User> users, User users1, Scanner sc) {
            System.out.println("请您输入需要存款的金额¥");
            double addmoney = sc.nextDouble();
    //增加账户的余额
            users1.setCexIOBalance(users1.getCexIOBalance() + addmoney);
    
    
        }
    
        //    取钱
        public static void Reducemoney(ArrayList<User> users, User users1, Scanner sc) {
            System.out.println("请您输入需要取走的金额¥");
            double addmoney = sc.nextDouble();
            if (users1.getCexIOBalance() > 0) {
    
    //增加账户的余额
                users1.setCexIOBalance(users1.getCexIOBalance() - addmoney);
    //        取款额度要改变
                users1.setGetWithdrawals(users1.getGetWithdrawals() - addmoney);
            } else {
                System.out.println("您的账户很干净,请努力赚钱\n返回上一步");
                return;
            }
        }
    
        //    用户信息更改
        public static void Changeinformation(ArrayList<User> users, User users1, Scanner sc) {
            if (users.size() == 0) {
                System.out.println("系统内没有该用户信息");
                return;
            }
            System.out.println("请输入账户名的更改名");
            String rename = sc.next();
            users1.setAccount(rename);
            System.out.println("请输入新的密码");
            String repassword = sc.next();
            users1.setPassword(repassword);
            System.err.println("信息更改成功");
    
        }
    
        //    显示目前系统实时时间
        public static void Time() {
            Date d = new Date();
            SimpleDateFormat sdf = new SimpleDateFormat("当前时间:yyyy年MM月dd日 HH:mm:ss");
            String s = sdf.format(d);
            System.out.println(s);
        }
    
        //    管理员登录
        public static void sign_system(ArrayList<Systemer> systemers, ArrayList<User> users, Scanner sc) {
    
    
    
                System.out.println("请输入管理员账号");
                String s = sc.next();
                System.out.println("请输入管理员密码");
                String p = sc.next();
    
                    boolean flagzhanghu = "adminster".equals(s);
                    boolean flagmima = "14520".equals(p);
                    if (flagzhanghu && flagmima) {
                        System.out.println("登陆成功");
                        System.out.println("请输入");
                        while (true) {
                        System.out.println("1:查看所有用户信息");
                        System.out.println("2:更改用户信息");
                        System.out.println("0:返回系统初界面");
                        String choose = sc.next();
                        switch (choose) {
                            case "1":
                                if (users.size() != 0) {
                                    Showall(users);
                                    break;
                                } else {
                                    System.out.println("系统内无数据");
                                  break;
                                }
    
                            case "2":
                                finalchange(users, sc);
                                break;
                            case "0":
                                return;
                            default:
                                System.out.println("功能还在开发,请尽情期待");
                                break;
                        }
    
                    }
    
                    }
    
                    else {
                        System.out.println("您输入的账户或密码有误,请重新输入");
            }
    
        }
    
        //    最高权限的更改
        public static void finalchange(ArrayList<User> users, Scanner sc) {
            System.out.println("请输入您要更改的账户");
            String names = sc.next();
            if (users.size()>0) {
                for (int i = 0; i < users.size(); i++) {
    
                    if (names.equals(users.get(i).getAccount())) {
                        User user_s = users.get(i);
                        System.out.println("请选择要修改的信息");
                        System.out.println("1:  账户名");
                        System.out.println("2:    密码");
                        System.out.println("3:   账户余额");
                        System.out.println("4:    账户额度");
                        System.out.println("5:    卡号");
                        System.out.println("6:返回上一步");
                        String c = sc.next();
                        switch (c) {
                            case "1":
                                System.out.println("请输入账户名的更改名");
                                String rename = sc.next();
                                user_s.setAccount(rename);
                                System.err.println("信息更改成功");
                                break;
                            case "2":
                                System.out.println("请输入新的密码");
                                String repassword = sc.next();
                                user_s.setPassword(repassword);
                                System.err.println("信息更改成功");
                                break;
                            case "3":
                                System.out.println("请输入更改后的余额");
                                double cmoney = sc.nextDouble();
                                user_s.setCexIOBalance(cmoney);
                                System.err.println("信息更改成功");
                                break;
                            case "4":
                                System.out.println("请输入调整后的额度");
                                double cgetwithdraws = sc.nextDouble();
                                user_s.setGetWithdrawals(cgetwithdraws);
                                System.err.println("信息更改成功");
                                break;
                            case "5":
    
                                System.out.println("您当前修改账户的卡号为");
                                System.out.println(user_s.getID());
    
                                while (true) {
                                    System.out.println("请您输入修改后的卡号");
                                    String newID = sc.next();
    //                        int index_S = -1;
                                    for (int i1 = 0; i1 < users.size(); i1++) {
                                        if (users.get(i1).getID().indexOf(newID) != i1) {
                                            System.out.println("与其他账号卡号有冲突");
                                            break;
                                        }
                                    }
                                    user_s.setID(newID);
                                    System.err.println("修改成功");
                                    break;
                                }
                                break;
                            case "6":
                                return;
                            default:
                                System.out.println("功能还未开发,请耐心等待");
    
                        }
    
                    }
                }
            }
            else {
                System.out.println("系统内没有用户信息");
    
            }
        }
    }
    
    
    银行用户类封装
    

    package ATMSystem;

    public class User {
    // 账户名
    private String account;
    // 卡号
    private String ID;
    // 密码
    private String Password;
    // 账户余额
    private double CexIOBalance=0;
    // 取款额度
    private double getWithdrawals=500000;

    public User(){
    
    }
    
    public User(String account, String ID, String password, double cexIOBalance, double getWithdrawals) {
        this.account = account;
        this.ID = ID;
        Password = password;
        CexIOBalance = cexIOBalance;
        this.getWithdrawals = getWithdrawals;
    }
    
    public String getAccount() {
        return account;
    }
    
    public void setAccount(String account) {
        this.account = account;
    }
    
    public String getID() {
        return ID;
    }
    
    public void setID(String ID) {
        this.ID = ID;
    }
    
    public String getPassword() {
        return Password;
    }
    
    public void setPassword(String password) {
        Password = password;
    }
    
    public double getCexIOBalance() {
        return CexIOBalance;
    }
    
    public void setCexIOBalance(double cexIOBalance) {
        CexIOBalance = cexIOBalance;
    }
    
    public double getGetWithdrawals() {
        return getWithdrawals;
    }
    
    public void setGetWithdrawals(double getWithdrawals) {
        this.getWithdrawals = getWithdrawals;
    }
    

    }
    管理员封装
    如果觉得可以增加管理员人数,可以直接增加数据

    package ATMSystem;
    
    public class Systemer {
        private String name="adminster";
        private String passwords="14520";
    
        public Systemer() {
    
        }
    
        public Systemer(String name, String passwords) {
            this.name = name;
            this.passwords = passwords;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getPasswords() {
            return passwords;
        }
    
        public void setPasswords(String passwords) {
            this.passwords = passwords;
        }
    
    
    
    }
    
    

    代码写的不是特别好,仅供参考

    展开全文
  • Java新手练手的小项目

    2018-10-08 11:46:07
    java新手练手项目,很适合新手。 
  • 作为Java初学者,想通过做一些demo来提升自己的水平,这个项目demo设计多线程,以及javaSwing图形化组件使用: 先展示一下效果图: 点击编译: 点击运行: 只有两个类,比较简单: 代码如下: File...

    作为Java的初学者,想通过做一些demo来提升自己的水平,这个项目demo设计多线程,以及javaSwing图形化组件使用:

    先展示一下效果图:

    点击编译:

    点击运行:

    只有两个类,比较简单:

    代码如下:

    FileWindows.java

    import java.awt.CardLayout;
    import java.awt.Color;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.BufferedInputStream;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
    
    import org.junit.Test;
    
    public class FileWindows extends JFrame implements ActionListener, Runnable {
    
    	Thread compiler =  null;
    	Thread run_prom = null;
    	boolean bn = true;
    	CardLayout mycard; //声明布局
    	File file_saved = null;
    	
    	//声明要用到的所有按钮
    	JButton button_input_txt,button_compiler_text,button_compiler,button_run_prom,button_see_doswin;
    	
    	//该画布存放的是卡片布局,只存三块Area,用于切换
    	JPanel p = new JPanel();
    	JTextArea input_text = new JTextArea();
    	JTextArea compiler_text = new JTextArea();
    	JTextArea dos_out_text = new JTextArea();
    	
    	JTextField input_file_name_text = new JTextField();
    	JTextField run_file_name_text = new JTextField();
    	
    	public  FileWindows() {
    		super("java 编译器");
    		
    		//定义卡片布局,用于切换下方区域内容块
    		mycard = new CardLayout();
    		compiler = new Thread(this);
    		run_prom = new Thread(this);
    		button_input_txt = new JButton("程序输入区");
    		//button_input_txt.setName("zq");
    		button_compiler_text = new JButton("编译结果区");
    		button_see_doswin = new JButton("程序运行结果");
    		button_compiler= new JButton("编译程序");
    		button_run_prom= new JButton("运行程序");
    		
    		p.setLayout(mycard);
    		p.add("input",input_text);
    		p.add("compiler",compiler_text);
    		p.add("dos",dos_out_text);
    		add("Center",p);
    		
    		compiler_text.setBackground(Color.pink);
    		dos_out_text.setBackground(Color.cyan);
    		
    		JPanel p1= new JPanel();
    		p1.setLayout(new GridLayout(3,3));
    		
    		p1.add(button_input_txt);
    		p1.add(button_compiler_text);
    		p1.add(button_see_doswin);
    		
    		p1.add(new JLabel("请输入编译文件名(.java)"));
    		p1.add(input_file_name_text);
    		p1.add(button_compiler);
    		p1.add(new JLabel("输入应用程序主类名"));
    		p1.add(run_file_name_text);
    		p1.add(button_run_prom);
    		add(p1,"North");
    		
    		button_input_txt.addActionListener(this);
    		button_compiler.addActionListener(this);
    		button_compiler_text.addActionListener(this);
    		button_run_prom.addActionListener(this);
    		button_see_doswin.addActionListener(this);
    		
    		
    		
    	}
    	
    	
    	
    
    	
    	@Override
    	public void run() {
    		
    		//当前线程为编译时候:
    		if(Thread.currentThread()==compiler) {
    			compiler_text.setText(null);
    			String temp= input_text.getText().trim();
    			byte[] buffer= temp.getBytes();
    			int b=buffer.length;
    			String file_name= null;
    			file_name=input_file_name_text.getText().trim();
    			//创建并保存文件
    			file_saved= new File(file_name);
    			try {
    				OutputStream writefile = new FileOutputStream(file_saved);
    				writefile.write(buffer,0,b);
    				writefile.close();
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    			
    			
    			//获得该进程的错误流,才可以知道运行结果到底是失败了还是成功。
    			//通过Runtime调用javac命令
    			 try { 
    				 Runtime rt=Runtime.getRuntime();
    				InputStream in=rt.exec("javac "+file_name).getErrorStream();
    				//将字节流包装转换为字符流
    				BufferedInputStream bufIn=new BufferedInputStream(in);
    				byte[] shuzu= new byte[100];
    				//用于记录每次从错误流读取的长度
    				int n =0;
    				boolean flag = true;
    				//将字符流添加到  compiler_text卡片中显示结果
    				while((n=bufIn.read(shuzu,0,shuzu.length))!=-1) {
    					String s = null;
    					s=new String(shuzu,0,n);
    					compiler_text.append(s);
    					//假设有一次读取失败,则s中即为空,正常情况下,下面的一个判断可无
    					if(s!=null)
                        {
                            flag=false;
                        }
    				}
    				//输出完成后判断一次
    				if(flag)
    				{
    					compiler_text.append("Compile Succeed");
    				
    				}
    		
    			} catch (Exception e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    			
    		}
    		//当前线程为程序运行结果时候:
    		else if(Thread.currentThread()==run_prom) {
    			
    			 try {
    				 dos_out_text.setText(null);
    				 Runtime rt=Runtime.getRuntime();
    				 String path = run_file_name_text.getText().trim();
    				 Process stream=rt.exec("java "+path);
    				 //记录成功结果
    				 InputStream in = stream.getInputStream();
    				 BufferedInputStream bisIn=new BufferedInputStream(in);
    				 //记录错误结果:
    				 BufferedInputStream bisErr = new BufferedInputStream(stream.getErrorStream());
    				 
    				 byte[] buf=new byte[150];
    				 byte[] err_buf = new byte[150];
    				 int m =0;
    				 int i=0;
    				 String s=null;
    				 String err= null;
    				 while((m=bisIn.read(buf,0,buf.length))!=-1) {
    					 s=new String(buf,0,150);
    					 dos_out_text.append(s);	 
    				 }
    				 while((i=bisErr.read(err_buf))!=-1)
                     {
                     err=new String(err_buf,0,150);
                     dos_out_text.append(err);
                     }
    				 
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    			 
    			
    			
    		}
    		
    	}
    
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		if(e.getSource()==button_input_txt) {
    			mycard.show(p, "input");
    		}
    		else if(e.getSource()==button_compiler_text) {
    			mycard.show(p,"compiler");
    		}
    		 else if(e.getSource()==button_see_doswin)
             {    //显示程序运行结果区
                 mycard.show(p,"dos");
             }
    		 else if(e.getSource()==button_compiler) {
    			 //如果该线程还存在,则重新开始一个线程
    			 if(!(compiler.isAlive()))
                 {
    				 compiler=new Thread(this);
                 }
    			 compiler.start();
    			 mycard.show(p,"compiler");
    		 }
    		 else if(e.getSource()==button_run_prom) {
    			//如果该线程还存在,则重新开始一个线程
    			 if(!(run_prom.isAlive()))
                 {
                     run_prom=new Thread(this);
                 }
    			 run_prom.start();
    			 mycard.show(p,"dos");
    		 }
    		
    	}
    
    }
    

    运行类Main.java:

    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowStateListener;
    
    public class Main {
    
    	public static void main(String[] args) {
    		FileWindows win= new FileWindows();
    		win.pack();
            //添加正常退出的操作:
    		win.addWindowListener(new WindowAdapter() {
    			@SuppressWarnings("unused")
    			public void windowclosing() {
    				System.out.println(0);
    			}
    			
    		});
    		win.setBounds(200,180,550,360);
    		win.setVisible(true);
    		
    	}
    }
    

    就这么多了,感兴趣的话欢迎提问,半小时内必答

    展开全文
  • 1.socket函数send和recv函数2.另外俩个忘了,Java开发的ui的部分代码
  • 最后再通过有趣的练手项目进行巩固。JAVA基础1.Java编程语言(新版)2. Java进阶之设计模式3. JDK 核心 API4. MySQL 基础课程5. 正则表达式基础6. JDBC 入门教程J2SE & SSH框架7. Java 函数...

    给大家推荐一条由浅入深的JAVA学习路径,首先完成 Java基础、JDK、JDBC、正则表达式等基础实验,然后进阶到 J2SE 和 SSH 框架学习。最后再通过有趣的练手项目进行巩固。860a594dc504a551d9d14270c9f1edf9.png

    JAVA基础

    1.Java编程语言(新版)

    2. Java进阶之设计模式

    3. JDK 核心 API

    4. MySQL 基础课程

    5. 正则表达式基础

    6. JDBC 入门教程

    J2SE & SSH框架

    7. Java 函数式编程

    8. J2SE网络通信实践

    9. Struts框架教程

    10. Hibernate框架教程

    11. Spring框架入门教程(新版)

    12. MyBatis 框架基础入门

    13. Spring MVC 简易教程

    基础项目

    1. Java开发简单的计算器

    使用 Java 语言完成一个简单的计算器。将使用到 Java Swing 图形组件等等。带你深入学习如何制作 Swing 图形化界面以及为 UI 组件设置事件响应逻辑。

    2. Java 实现日记软件

    做一个简单的 Java 日记软件,可以实现用户的注册、登录以及对日记的各种操作。同学们可以用自己做出的日记软件来记录自己的生活。涉及了包括 Swing 界面编程、文件和IO流操作、JDOM 解析 XML 文档等方面的知识点。

    3. Java实现在线协作文档编辑

    多人在线协作文档编辑器是一个很常用的功能,适合小组内的文档编辑;使用java编写代码,应用非常流行的spring mvc框架,引入ckeditor插件,并加入localStorage缓存技术,最终利用Eclipse完成。非常适合Java学习者用于练手。

    4. 自己的Java编辑器

    使用 Eclipse 开发,配合 Java 语言完成一个 Java 编辑器。它的主要功能:1、Java代码的编辑 2、编译及运行Java程序。

    5. SSM 框架整合实例

    SSM(Spring+Spring MVC+MyBatis)是媲美于 SSH 框架的轻量级 Java EE 框架。

    6. Java 编写数独计算器

    使用Java实现数独游戏的核心算法,在感受数独的魅力中通过Java编写桌面程序完成数独计算器,完成对Java基础知识点的学习和巩固。

    7. Java实现简单的支付平台业务流程

    模拟支付平台上买家付款到支付平台,卖家从支付平台取款的简单业务流程,最终结果以控制台输出形式展现。通过此流程,详细了解 Java 线程与同步。

    8. 基于 Servlet 的简单验证码图片生成

    通过在后台的 Servlet 生成验证码图片,传递到前台 HTML 页面展示。通过本教程的练习可以进一步熟悉 Servlet、Random 函数、StringBuffer 、OutputStream 等等,掌握基础的验证码生成。

    9. SSM + easyUI 搭建简易的人事管理系统

    SSM(Spring + Spring MVC + MyBatis)框架是媲美于 SSH 框架的轻量级 Java EE 框架。easyUI 是一组基于 jQuery 的 UI 插件集合体,它的目标就是帮助 web 开发者更轻松的打造出功能丰富并且美观的 UI 界面。932bd1d473f64c5950fb32d152fbd0a4.png

    63338e52ac7db4fcec54078c99575bb5.png

    806cfca3c4be0435a9674541aae062ff.png

    展开全文
  • 发现了一个非常适合Java初学者的网站:https://how2j.cn?p=277321.里面的有贯穿整个Java知识点,还有各种适合练手的习题和项目,让边做边学,记忆深刻.里面分Java的各种阶段,
  • 我之前也一直在找这样的项目,准备作为毕业项目,找工作时候的谈资:贯穿整个java知识点的,用到ssh,或者ssm框架,这样就可以让自己对java有一个整体的,清晰的认识。什么OA人事管理系统,什么ERP系统,找出来都不太...
  • 70多套java练项目,适合小白上手!

    万次阅读 多人点赞 2021-01-20 21:52:33
    导读:这些项目不管是找工作练手,还是公司使用当作模板进一步改进,亦或者是当作毕业设计,都很有借鉴意义! 编译器建议使用:IDEA,Myeclipse,eclipse,HB-X等都可以。 数据库建议使用,mysql,oracle,sqlsever ...
  • 源码下载(实例一): jsp开发完整的博研图书馆后台管理系统,不使用框架开发的,太完美了 ... 源码下载(实例二): javaWeb图书馆管理系统源码...GitHub - uboger/LibraryManager: JAVA GUI 图书馆管理系统 htt...
  • 可以给初学者参考
  • 适合Java新手练手的小项目

    万次阅读 多人点赞 2018-10-08 15:40:00
    对于很多朋友来说,Java是学习编程的开始,也有很多朋友希望通过Java可以找到工作,...就需要一些小项目练手,这里分享一些还不错供大家学习提高。 源码下载(实例一): jsp开发完整的博研图书馆后台管理系统...
  • 图书馆管理小项目的主要目的是让学完JavaSE的同学对之前掌握的知识做一些运用,该项目应用的知识点包括下面内容: 面向对象的思想 分层的思想 接口 异常 集合 日期处理 Stream流 IO流 反射 Javafx(了解)...
  • 黄金矿工小游戏是一款非常经典的休闲类挖宝游戏!相信绝大多数人小时候应该都玩过...Java黄金矿工项目分析! 欢乐黄金矿工游戏是一款极其休闲的一个挖宝游戏,在这个游戏中地下有很多的宝藏,你要想办法把他们都挖...
  • Java【有哪些适合新手练手Java项目?】

    万次阅读 多人点赞 2017-09-10 20:27:29
    Java作为一门古老的语言,已有20年左右的历史,这在发展日新月异的技术圈可以说是一个神话。 虽然不少人曾抱怨Java语言...看到了这里,恭喜正式开始进入主题:适合新手练手Java项目?  C9154343-0F98-4774-A
  • 15个经典的小程序,帮助我很多,希望也可以给你带来一些帮助。
  • user使用类:客户customer,管理员admin两个子类 客户:继承自使用 权利有 借书 还书 客户的资料信息要存放在user.txt里面, 管理员:继承自使用 权力有 查看当前图书馆藏书的借阅情况,是否同意放书 管理员资料...
  • 这是一个比较水的练手项目,对于初学Java的新手来说比较适合练手,该项目的主要来源是我暑假参加工程实践,按老师给的需求个人开发的玩具项目,不足之处,还望指点。 1.项目的起始界面: 2.登录系统 对错误登录进行...
  • import java.util.*; import org.omg.CORBA.PUBLIC_MEMBER; // CMUtility工具类 // 将不同的功能封装为方法 public class CMUtility { private static Scanner scanner = new Scanner(System.in); //功能选择...
  • 源码下载(实例一): jsp开发完整的博研图书馆后台管理系统,不使用框架开发的,太完美了 ... 源码下载(实例二): javaWeb图书馆管理系统源码...GitHub - uboger/LibraryManager: JAVA GUI 图书馆管理系统 htt...
  • 利用JavaSwing来制作的超市信息管理系统,主要包括用户管理 职工管理 客户管理 供应商管理 和入库和出库管理。非常简单的系统 非常适合初学者的练习,希望大家喜欢。
  • 我之前也一直在找这样的项目,准备作为毕业项目,找工作时候的谈资:贯穿整个java知识点的,用到ssh,或者ssm框架,这样就可以让自己对java有一个整体的,清晰的认识。什么OA人事管理系统,什么ERP系统,找出来都不太...
  • 适合Java初学者练习的项目

    千次阅读 多人点赞 2020-07-10 15:41:24
    图书馆里系统 项目地址:图书管理系统 介绍:这是我刚学完ssm后,找的一个练手项目。它是基于ssm实现的图书管理系统,分为两个角色:读者和管理员。读者可以显示图书列表,并且能够借阅图书,归还图书,以及修改...
  • J2SE中在java.net.*包中提供了Socket和SeverSocket两种用于通信方式的套接字,其中Socket用于客户端,ServerSocket用于服务器端,套接字为两台机器的通信连接,Socket就如同平时用的插座一样,为一个通信的接口。...
  • 用到的技术包括: XML各种框架的嵌套使用,通过Handler在线程间通信来对UI界面进行修改各种控件的监听机制和监听方法等,都是比较初步的,适合初学者拿来练练手以下是介绍-----------------------------------------...
  • 希望给像我一样的新手带来方便。主要是一些java经典的小程序。
  • 不知道题主的“项目”大概是什么样的范围,就个人实际工作中来看还是用Java做基于WEB的信息管理系统场景多一点。个人刚毕业的时候拿来练手或者工作过程中做试验一般喜欢选择考生成绩管理这个题目,算是目标比较明确...
  • 简单的数据结构、if else 语句、数组、循环、结构。适合零基础学习java使用
  • 源码下载(实例一):jsp...源码下载(实例三)GitHub - uboger/LibraryManager: JAVA GUI 图书馆管理系统 源码下载(实例四):java swing开发企业人事管理系统源代码下载 源码下载(实例一):java swing开发网...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,463
精华内容 3,385
关键字:

java初学者练手项目

java 订阅