拥有了自己的第一个项目

因为心血来潮,做了自己的第一项目,矩阵计算器,是不是感觉好无聊。
因为整个项目,我做了三天,每天都在弄这个,参考了好多书籍,然而,经历过大量的测试后,才成功运行成功,并完成了自己的需求,成功之后,有那么一点点,兴奋,毕竟是自己的第一个项目,跟别人说,可能会被嘲笑吧,但是真的挺兴奋的,嘿嘿,
但是之后,成就感就荡然无存了,因为自己写的代码,显得很东拼西凑,并没有那些规划性,别人都是事先做好了,哪一步做哪一步,事先规划好。而我,临时想的,又不知道从哪里下手,显得好失败的感觉

代码块

package cn.itcast.app;

import cn.itcast.ui.MainFrame;

public class MainApp {
    public static void main(String[] args) {
        MainFrame frame = new MainFrame();

        frame.setVisible(true);
    }

}

package cn.itcast.ui;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;

public class MainFrame extends JFrame  {
    ComputerListener computer;
    private JTextArea textShow;
    static JButton button;
    private JTextField inputNumberTwo;
    private JTextField inputNumberOne;
    static JButton button1;

    public MainFrame(){
        init();
        addCompont();
        addCompont1();
        addCompont2();
        Listener();
    }
    private void addCompont2() {
        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(1,1));
        JPanel southPanel = new JPanel();
        southPanel.setBorder(new TitledBorder("Answer"));
        southPanel.setBackground(Color.PINK);

        textShow = new JTextArea(12,43);
        southPanel.add(new JScrollPane(textShow));
        panel.add(southPanel,BorderLayout.EAST);
        this.add(panel,BorderLayout.SOUTH);
    }
    private void addCompont1() {
        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(1,1));

        JPanel center = new JPanel();
        center.setBorder(new TitledBorder("矩阵值"));
        center.setBackground(Color.PINK);
        inputNumberTwo = new JTextField(43);
        center.add(inputNumberTwo);
        panel.add(center,BorderLayout.EAST);
        this.add(panel,BorderLayout.CENTER);
    }
    private void addCompont() {
        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(1,2));

        JPanel northPanel = new JPanel();
        northPanel.setBorder(new TitledBorder("阶数"));
        northPanel.setBackground(Color.PINK);
        inputNumberOne = new JTextField(20);

        northPanel.add(inputNumberOne);
        panel.add(northPanel, BorderLayout.WEST);
        JPanel rightPanel = new JPanel();

        rightPanel.setBackground(Color.PINK);
        rightPanel.setLayout(new GridLayout(1,1));
        button = new JButton("Calculate");
        button.setBackground(Color.PINK);
        button1 = new JButton("Reset");
        button1.setBackground(Color.PINK);
        rightPanel.add(button,BorderLayout.WEST);
        rightPanel.add(button1,BorderLayout.EAST);
        panel.add(rightPanel,BorderLayout.EAST);
        this.add(panel,BorderLayout.NORTH);
    }
    private void Listener(){
        computer = new ComputerListener();
        computer.setJTextFieldOne(inputNumberOne);
        computer.setJTextFieldTwo(inputNumberTwo);
        computer.setJTextArea(textShow);
        button.addActionListener(computer);
        button1.addActionListener(computer);
    }
    private void init() {
        //标题
        this.setTitle("矩阵计算");
        //大小
        this.setSize(500, 400);
        //固定位置
        this.setLocation(150,40);
        //固定大小
        this.setResizable(false);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
}

package cn.itcast.ui;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class ComputerListener implements ActionListener {
    JTextField inputNumberOne, inputNumberTwo;
    JTextArea textShow;

    public void setJTextFieldOne(JTextField t) {
        inputNumberOne = t;
    }

    public void setJTextFieldTwo(JTextField t) {
        inputNumberTwo = t;
    }

    public void setJTextArea(JTextArea area) {
        textShow = area;
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == MainFrame.button1) {
            inputNumberOne.setText("");
            inputNumberTwo.setText("");
        }
        if (e.getSource() == MainFrame.button) {
            try {
                int number1 = Integer.parseInt(inputNumberOne.getText());
                String str = inputNumberTwo.getText();
                String[] data = str.split(" ");
                int[][] z = new int[number1][number1];
                int k = 0;
                for (int i = 0; i < number1; i++)
                    for (int j = 0; j < number1; j++) {
                        z[i][j] = Integer.parseInt(data[k]);
                        k++;
                    }
                for (int a = 0; a < number1; a++) {
                    for (int b = 0; b < number1; b++) {
                        textShow.append(z[a][b] + " ");
                    }
                    textShow.append("\n");
                }
                String str1 = String.valueOf(Det(z, number1 - 1));
                textShow.append(str1+"\n");
                textShow.append("--------------------------------------\n");

            } catch (Exception exp) {
                textShow.append("\nPlease Input Number\n");
            }
        }
    }

    public static int Det(int[][] Matrix, int N) {
        int T0;
        int T1;
        int T2;
        int Num;
        int Cha;
        int[][] B;
        if (N > 0) {
            Cha = 0;
            B = new int[N][N];
            Num = 0;
            if (N == 1) {
                return Matrix[0][0] * Matrix[1][1] - Matrix[0][1]
                        * Matrix[1][0];
            }
            for (T0 = 0; T0 <= N; T0++) {
                for (T1 = 1; T1 <= N; T1++) {
                    for (T2 = 0; T2 <= N - 1; T2++) {
                        if (T2 == T0) {
                            Cha = 1;
                        }
                        B[T1 - 1][T2] = Matrix[T1][T2 + Cha];
                    }
                    Cha = 0;
                }
                Num = (int) (Num + Matrix[0][T0] * Det(B, N - 1)
                        * Math.pow((-1), T0));
            }
            return Num;
        } else if (N == 0) {
            return Matrix[0][0];
        }
        return 0;
    }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值