前言:


        对于基本的具有JFrame窗体的计算器大家都会写,今天分享关于简易计算器的进阶版亲戚计算器。

        文章末尾有完整源码。


首先来看运行效果:

开源分享 | java项目 | 亲戚计算器-编程知识网

可以看到:在JFrame窗体中,含有:、

一个JLable文本

两个JTextjField文本框

16个JButton按钮

还含有两个JPanel面板(稍后会讲解作用)

项目分为两部分:UI界面与亲戚计算方法


ui界面


        ui界面主要功能就是搭建窗体,供使用者操作,向控制台传入数据,并将返回结果打印出来。

首先写ui类继承Frame窗体

public class ui extends JFrame

        声明刚才所提到的窗口组件

    private static JTextField jTextField2 = new JTextField();private static JTextField jTextField1 = new JTextField();private static JPanel jPanel1 =new JPanel();private static JPanel jPanel2 =new JPanel();

        我将重要的组件写到了全局变量里面,JButtonJLable写在了UI的局部变量里

写一个UI方法返回值为空

    public void UI() {}

        首先设置UI方法也就是窗体的基本属性

        this.setTitle("亲戚计算器");//设置窗体标题this.setSize(340, 500);//设置窗体大小this.setVisible(true);//窗体设置为课件this.setLocationRelativeTo(null);//窗体设置为屏幕居中

        之后创建JLable文本并设置其属性

        JLabel jLabel1 = new JLabel("请输入您的亲戚");jLabel1.setForeground(Color.blue);Font f = new Font("微软雅黑", Font.BOLD, 20);jLabel1.setFont(f);jLabel1.setBounds(30, 10, 300, 30);

        创建两个JTextField组件并设置其属性

        jTextField1.setBounds(20, 40, 300, 30);
//        jTextField1.setBackground(Color.BLUE);//此为文本框定位用完了就可以删了jTextField1.setForeground(Color.red);jTextField1.setHorizontalAlignment(JTextField.RIGHT);//右对齐jTextField2.setBounds(20,80,300,30);
//        jTextField1.setBackground(Color.BLUE);//此为文本框定位用完了就可以删了jTextField2.setPreferredSize(new Dimension(300,30));jTextField2.setForeground(Color.red);jTextField2.setHorizontalAlignment(JTextField.RIGHT);//右对齐

        之所以没有设置组件的位置是因为想把组件放到JPanel面板中,如果不将组件放到JPanel面板中会出现好多bug(本人亲测)

        jPanel1.setLayout(null);//布局方式设置为空布局jPanel2.setLayout(null);jPanel1.setBounds(0,0,340,120);jPanel2.setBounds(15, 120, 300, 700);

        写16个JButton按钮并设置其位置(!注意,我们是将JButton组件放大JPanel里面的,所以设置的位置不是在整个JFrame窗体的位置,而是在JPanel中的位置,可以联系相对路径那个概念)

        JButton jButton1 = new JButton("父亲");JButton jButton2 = new JButton("母亲");JButton jButton3 = new JButton("哥哥");JButton jButton4 = new JButton("弟弟");JButton jButton5 = new JButton("姐姐");JButton jButton6 = new JButton("妹妹");JButton jButton7 = new JButton("妻子");JButton jButton8 = new JButton("儿子");JButton jButton9 = new JButton("女儿");JButton jButton10 = new JButton("的");JButton jButton11 = new JButton("是");JButton jButton12 = new JButton("退出");JButton jButton13 = new JButton("ac");JButton jButton14 = new JButton("丈夫");JButton jButton15 = new JButton("年长");JButton jButton16 = new JButton("年少");jButton1.setBounds(10, 30, 60, 40);jButton2.setBounds(80, 30, 60, 40);jButton3.setBounds(150, 30, 60, 40);jButton4.setBounds(10, 80, 60, 40);jButton5.setBounds(80, 80, 60, 40);jButton6.setBounds(150, 80, 60, 40);jButton7.setBounds(10, 130, 60, 40);jButton8.setBounds(80, 130, 60, 40);jButton9.setBounds(150, 130, 60, 40);jButton10.setBounds(240, 80, 60, 40);jButton11.setBounds(240, 130, 60, 40);jButton12.setBounds(240, 180, 60, 40);jButton13.setBounds(240, 30, 60, 40);jButton14.setBounds(10, 180, 60, 40);jButton15.setBounds(80, 180, 60, 40);jButton16.setBounds(150, 180, 60, 40);

        在JPanel中添加相关组件,并将两个JPanel面板添加到JFrame窗体中

        jPanel1.add(jLabel1);jPanel1.add(jTextField1);jPanel1.add(jTextField2);jPanel2.add(jButton1);jPanel2.add(jButton2);jPanel2.add(jButton3);jPanel2.add(jButton4);jPanel2.add(jButton5);jPanel2.add(jButton6);jPanel2.add(jButton7);jPanel2.add(jButton8);jPanel2.add(jButton9);jPanel2.add(jButton10);jPanel2.add(jButton11);jPanel2.add(jButton12);jPanel2.add(jButton13);jPanel2.add(jButton14);jPanel2.add(jButton15);jPanel2.add(jButton16);

        至此一个简单的窗体就写好了,但是会发现点击按钮没有任何反应,也不会向控制台传入任何信息,单纯的就是一个可以点击的按钮而已,我们要让他具有向控制台输出的功能就要为按钮添加动作监听

        jButton1.addActionListener(this);jButton2.addActionListener(this);jButton3.addActionListener(this);jButton4.addActionListener(this);jButton5.addActionListener(this);jButton6.addActionListener(this);jButton7.addActionListener(this);jButton8.addActionListener(this);jButton9.addActionListener(this);jButton10.addActionListener(this);jButton11.addActionListener(this);jButton12.addActionListener(this);jButton13.addActionListener(this);jButton14.addActionListener(this);jButton15.addActionListener(this);jButton16.addActionListener(this);

        注意,在写以上代码的时候java会报错,在IDEA中,会提供解决方案选择第二个解决方案就好。(如果是其他的编译器可以在文末查看完整代码)

        之后设置窗体的其他属性

        this.setForeground(Color.red);this.setResizable(false);//窗体设置为不可调整大小this.setLayout(null);//窗体设置为空布局setDefaultCloseOperation(EXIT_ON_CLOSE);//窗体设置为按关闭建结束进程,// 如果不设置的话即使关了窗体也依然在运行程序

        写完之后可以先写main方法运行一下

public static void main(String[] args) {new ui().UI();}

        最终要的来了,重写监听事件:

    @Overridepublic void actionPerformed(ActionEvent e) {String a = e.getActionCommand();if ("是".indexOf(a) == 0 ){jTextField2.setText(FamilyMath.Family(ui.jTextField1.getText()));} else if ("退出".indexOf(a) == 0) {System.exit(0);} else if ("ac".indexOf(a) == 0) {ui.jTextField1.setText("");ui.jTextField2.setText("");}else{jTextField1.setText(jTextField1.getText() + " " + a);}}

        这个点击事件先得到按钮的文字,之后就是if,else的运用,主要是判断语句中的那个indexof方法特别的强,感觉比equals方法灵活好多(equals方法只是单纯的匹配字符串的值感觉)这里翻译一下

    1、如果点击“是”按钮,会对输入框的内容进行计算,将方法返回值输出到输出框里面

    2、如果点击“退出”按钮就会关闭程序

    3、如果点击“ac”(清零)按钮会将输入框和输出框的文本替换为“”(啥也没有),也就是说清除。

    4、除此之外点击按钮会将输入框的原本的字符串加空格加刚点击按钮的字符串整到一起放在输入框里(这个玩意想了好久才想到的)。

至此,UI界面就算完全写完,之后就是FamliyMath方法


亲戚计算界面


        这里我新建了一个FamliyMath类并且封装了一个方法,传入形参shuru(英语不太好)

        之后就是对输入的值用equals方法进行字符串值匹配并且返回计算之后的值。

public class FamilyMath {public static String Family (String shuru ){if (shuru.equals(" 母亲 的 父亲")) {return " 姥爷";} else if (shuru.equals(" 母亲 的 母亲")) {return  " 姥姥";}else if (shuru.equals(" 母亲 的 儿子")) {return  " 你";}else if (shuru.equals(" 母亲 的 妻子")) {return  " 你大爷的";}else if (shuru.equals(" 母亲 的 丈夫")) {return  " 父亲";}else if (shuru.equals(" 母亲 的 女儿")) {return  " 你";}else if (shuru.equals(" 母亲 的 妹妹")) {return  " 姨妈";}else if (shuru.equals(" 母亲 的 姐姐")) {return  " 姨妈";}else if (shuru.equals(" 母亲 的 哥哥")) {return  " 舅舅";}else if (shuru.equals(" 母亲 的 弟弟")) {return  " 舅舅";}else if(shuru.equals(" 父亲 的 父亲")) {return " 爷爷";} else if (shuru.equals(" 父亲 的 母亲")) {return  " 奶奶";}else if (shuru.equals(" 父亲 的 儿子")) {return  " 你";}else if (shuru.equals(" 父亲 的 妻子")) {return  " 母亲";}else if (shuru.equals(" 父亲 的 丈夫")) {return  " 你大爷的";}else if (shuru.equals(" 父亲 的 女儿")) {return  " 你";}else if (shuru.equals(" 父亲 的 妹妹")) {return  " 姑妈";}else if (shuru.equals(" 父亲 的 姐姐")) {return  " 你 的 姑妈";}else if (shuru.equals(" 父亲 的 哥哥")) {return  " 伯父";}else if (shuru.equals(" 父亲 的 弟弟")) {return  " 叔叔";}else if(shuru.equals(" 哥哥 的 父亲")||shuru.equals(" 弟弟 的 父亲")) {return " 父亲";}else if(shuru.equals(" 哥哥 的 母亲")||shuru.equals(" 弟弟 的 母亲")) {return " 母亲";}else if(shuru.equals(" 哥哥 的 女儿")||shuru.equals(" 弟弟 的 女儿")) {return " 侄女";}else if(shuru.equals(" 哥哥 的 哥哥")) {return " 哥哥";}else if(shuru.equals(" 哥哥 的 儿子")||shuru.equals(" 弟弟 的 儿子")) {return " 侄子";}else if(shuru.equals(" 哥哥 的 妻子")) {return " 嫂子";}else if(shuru.equals(" 哥哥 的 丈夫")||shuru.equals(" 弟弟 的 丈夫")) {return " 你大爷的";}else if(shuru.equals(" 哥哥 的 弟弟")||shuru.equals(" 弟弟 的 哥哥")) {return " 你";}else if(shuru.equals(" 哥哥 的 姐姐")) {return " 姐姐";}else if(shuru.equals(" 哥哥 的 妹妹")) {return " 你";}else if(shuru.equals(" 弟弟 的 妹妹")) {return " 你";}else if(shuru.equals(" 弟弟 的 弟弟")) {return " 你";}else if(shuru.equals(" 弟弟 的 姐姐")) {return " 你";}else if(shuru.equals(" 弟弟 的 妻子")) {return " 弟妹";}else if(shuru.equals(" 姐姐 的 父亲")||shuru.equals(" 妹妹 的 父亲")) {return " 父亲";}else if(shuru.equals(" 姐姐 的 母亲")||shuru.equals(" 妹妹 的 母亲")) {return " 母亲";}else if(shuru.equals(" 姐姐 的 女儿")||shuru.equals(" 妹妹 的 女儿")) {return " 外甥女";}else if(shuru.equals(" 姐姐 的 哥哥")) {return " 哥哥";}else if(shuru.equals(" 姐姐 的 儿子")||shuru.equals(" 妹妹 的 儿子")) {return " 外甥";}else if(shuru.equals(" 姐姐 的 丈夫")) {return " 姐夫";}else if(shuru.equals(" 姐姐 的 妻子")||shuru.equals(" 妹妹 的 妻子")) {return " 你大爷的";}else if(shuru.equals(" 姐姐 的 弟弟")||shuru.equals(" 妹妹 的 哥哥")) {return " 你";}else if(shuru.equals(" 姐姐 的 姐姐")) {return " 姐姐";}else if(shuru.equals(" 姐姐 的 妹妹")) {return " 你";}else if(shuru.equals(" 妹妹 的 妹妹")) {return " 妹妹";}else if(shuru.equals(" 妹妹 的 弟弟")) {return " 弟弟";}else if(shuru.equals(" 妹妹 的 姐姐")) {return " 你";}else if(shuru.equals(" 妹妹 的 丈夫")) {return " 妹夫·";}else if(shuru.equals(" 丈夫 的 父亲")) {return " 公公";} else if (shuru.equals(" 丈夫 的 母亲")) {return  " 婆婆";}else if (shuru.equals(" 丈夫 的 儿子")) {return  " 儿子";}else if (shuru.equals(" 丈夫 的 妻子")) {return  " 你";}else if (shuru.equals(" 丈夫 的 丈夫")) {return  " 你大爷的";}else if (shuru.equals(" 丈夫 的 女儿")) {return  " 女儿";}else if (shuru.equals(" 丈夫 的 妹妹")) {return  " 小姑子";}else if (shuru.equals(" 丈夫 的 姐姐")) {return  " 大姑姐";}else if (shuru.equals(" 丈夫 的 哥哥")) {return  " 大哥";}else if (shuru.equals(" 丈夫 的 弟弟")) {return  " 小叔子";}else if(shuru.equals(" 妻子 的 父亲")) {return " 岳父";} else if (shuru.equals(" 妻子 的 母亲")) {return  " 岳母";}else if (shuru.equals(" 妻子 的 儿子")) {return  " 儿子";}else if (shuru.equals(" 妻子 的 妻子")) {return  " 你大爷的";}else if (shuru.equals(" 妻子 的 丈夫")) {return  " 你";}else if (shuru.equals(" 妻子 的 女儿")) {return  " 女儿";}else if (shuru.equals(" 妻子 的 妹妹")) {return  " 小姨子";}else if (shuru.equals(" 妻子 的 姐姐")) {return  " 大姨子";}else if (shuru.equals(" 妻子 的 哥哥")) {return  " 大舅子";}else if (shuru.equals(" 妻子 的 弟弟")) {return  " 小舅子";}else if(shuru.equals(" 女儿 的 父亲")) {return " 丈夫";} else if (shuru.equals(" 女儿 的 母亲")) {return  " 妻子";}else if (shuru.equals(" 女儿 的 儿子")) {return  " 外孙";}else if (shuru.equals(" 女儿 的 妻子")) {return  " 你大爷的";}else if (shuru.equals(" 女儿 的 丈夫")) {return  " 女婿";}else if (shuru.equals(" 女儿 的 女儿")) {return  " 外孙女";}else if (shuru.equals(" 女儿 的 妹妹")) {return  " 女儿";}else if (shuru.equals(" 女儿 的 姐姐")) {return  " 女儿";}else if (shuru.equals(" 女儿 的 哥哥")) {return  " 儿子";}else if (shuru.equals(" 女儿 的 弟弟")) {return  " 儿子";}else if(shuru.equals(" 儿子 的 父亲")) {return " 丈夫";} else if (shuru.equals(" 儿子 的 母亲")) {return  " 妻子";}else if (shuru.equals(" 儿子 的 儿子")) {return  " 孙子";}else if (shuru.equals(" 儿子 的 妻子")) {return  " 儿媳";}else if (shuru.equals(" 儿子 的 丈夫")) {return  " 你大爷的";}else if (shuru.equals(" 儿子 的 女儿")) {return  " 女儿";}else if (shuru.equals(" 儿子 的 妹妹")) {return  " 女儿";}else if (shuru.equals(" 儿子 的 姐姐")) {return  " 女儿";}else if (shuru.equals(" 儿子 的 哥哥")) {return  " 大儿子";}else if (shuru.equals(" 儿子 的 弟弟")) {return  " 儿子";}return shuru;}
}

至此所有项目全部写完,之后就可以运行测试


完整代码如下:

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class ui extends JFrame implements ActionListener {private static JTextField jTextField2 = new JTextField();private static JTextField jTextField1 = new JTextField();private static JPanel jPanel1 =new JPanel();private static JPanel jPanel2 =new JPanel();public void UI() {/*ImageIcon ic = new ImageIcon("src/picture/jisuanqi.png");//创建图片this.setIconImage(ic.getImage());//设置图标*/this.setTitle("亲戚计算器");//设置窗体标题this.setSize(340, 500);//设置窗体大小this.setVisible(true);//窗体设置为课件this.setLocationRelativeTo(null);//窗体设置为屏幕居中JLabel jLabel1 = new JLabel("请输入您的亲戚");jLabel1.setForeground(Color.blue);Font f = new Font("微软雅黑", Font.BOLD, 20);jLabel1.setFont(f);jLabel1.setBounds(30, 10, 300, 30);jTextField1.setBounds(20, 40, 300, 30);
//        jTextField1.setBackground(Color.BLUE);//此为文本框定位用完了就可以删了jTextField1.setForeground(Color.red);jTextField1.setHorizontalAlignment(JTextField.RIGHT);//右对齐jTextField2.setBounds(20,80,300,30);
//        jTextField1.setBackground(Color.BLUE);//此为文本框定位用完了就可以删了jTextField2.setPreferredSize(new Dimension(300,30));jTextField2.setForeground(Color.red);jTextField2.setHorizontalAlignment(JTextField.RIGHT);//右对齐jPanel1.setLayout(null);//布局方式设置为空布局jPanel2.setLayout(null);jPanel1.setBounds(0,0,340,120);jPanel2.setBounds(15, 120, 300, 700);JButton jButton1 = new JButton("父亲");JButton jButton2 = new JButton("母亲");JButton jButton3 = new JButton("哥哥");JButton jButton4 = new JButton("弟弟");JButton jButton5 = new JButton("姐姐");JButton jButton6 = new JButton("妹妹");JButton jButton7 = new JButton("妻子");JButton jButton8 = new JButton("儿子");JButton jButton9 = new JButton("女儿");JButton jButton10 = new JButton("的");JButton jButton11 = new JButton("是");JButton jButton12 = new JButton("退出");JButton jButton13 = new JButton("ac");JButton jButton14 = new JButton("丈夫");JButton jButton15 = new JButton("年长");JButton jButton16 = new JButton("年少");jButton1.setBounds(10, 30, 60, 40);jButton2.setBounds(80, 30, 60, 40);jButton3.setBounds(150, 30, 60, 40);jButton4.setBounds(10, 80, 60, 40);jButton5.setBounds(80, 80, 60, 40);jButton6.setBounds(150, 80, 60, 40);jButton7.setBounds(10, 130, 60, 40);jButton8.setBounds(80, 130, 60, 40);jButton9.setBounds(150, 130, 60, 40);jButton10.setBounds(240, 80, 60, 40);jButton11.setBounds(240, 130, 60, 40);jButton12.setBounds(240, 180, 60, 40);jButton13.setBounds(240, 30, 60, 40);jButton14.setBounds(10, 180, 60, 40);jButton15.setBounds(80, 180, 60, 40);jButton16.setBounds(150, 180, 60, 40);jPanel1.add(jLabel1);jPanel1.add(jTextField1);jPanel1.add(jTextField2);jPanel2.add(jButton1);jPanel2.add(jButton2);jPanel2.add(jButton3);jPanel2.add(jButton4);jPanel2.add(jButton5);jPanel2.add(jButton6);jPanel2.add(jButton7);jPanel2.add(jButton8);jPanel2.add(jButton9);jPanel2.add(jButton10);jPanel2.add(jButton11);jPanel2.add(jButton12);jPanel2.add(jButton13);jPanel2.add(jButton14);jPanel2.add(jButton15);jPanel2.add(jButton16);jButton1.addActionListener(this);jButton2.addActionListener(this);jButton3.addActionListener(this);jButton4.addActionListener(this);jButton5.addActionListener(this);jButton6.addActionListener(this);jButton7.addActionListener(this);jButton8.addActionListener(this);jButton9.addActionListener(this);jButton10.addActionListener(this);jButton11.addActionListener(this);jButton12.addActionListener(this);jButton13.addActionListener(this);jButton14.addActionListener(this);jButton15.addActionListener(this);jButton16.addActionListener(this);//        jPanel1.setBorder(BorderFactory.createLineBorder(Color.red));//设置1的边框this.add(jPanel2);this.add(jPanel1);this.setForeground(Color.red);this.setResizable(false);//窗体设置为不可调整大小this.setLayout(null);//窗体设置为空布局setDefaultCloseOperation(EXIT_ON_CLOSE);//窗体设置为按关闭建结束进程,// 如果不设置的话即使关了窗体也依然在运行程序}public static void main(String[] args) {new ui().UI();}@Overridepublic void actionPerformed(ActionEvent e) {String a = e.getActionCommand();if ("是".indexOf(a) == 0 ){jTextField2.setText(FamilyMath.Family(ui.jTextField1.getText()));} else if ("退出".indexOf(a) == 0) {System.exit(0);} else if ("ac".indexOf(a) == 0) {ui.jTextField1.setText("");ui.jTextField2.setText("");}else{jTextField1.setText(jTextField1.getText() + " " + a);}}public class FamilyMath {public static String Family (String shuru ){if (shuru.equals(" 母亲 的 父亲")) {return " 姥爷";} else if (shuru.equals(" 母亲 的 母亲")) {return  " 姥姥";}else if (shuru.equals(" 母亲 的 儿子")) {return  " 你";}else if (shuru.equals(" 母亲 的 妻子")) {return  " 你大爷的";}else if (shuru.equals(" 母亲 的 丈夫")) {return  " 父亲";}else if (shuru.equals(" 母亲 的 女儿")) {return  " 你";}else if (shuru.equals(" 母亲 的 妹妹")) {return  " 姨妈";}else if (shuru.equals(" 母亲 的 姐姐")) {return  " 姨妈";}else if (shuru.equals(" 母亲 的 哥哥")) {return  " 舅舅";}else if (shuru.equals(" 母亲 的 弟弟")) {return  " 舅舅";}else if(shuru.equals(" 父亲 的 父亲")) {return " 爷爷";} else if (shuru.equals(" 父亲 的 母亲")) {return  " 奶奶";}else if (shuru.equals(" 父亲 的 儿子")) {return  " 你";}else if (shuru.equals(" 父亲 的 妻子")) {return  " 母亲";}else if (shuru.equals(" 父亲 的 丈夫")) {return  " 你大爷的";}else if (shuru.equals(" 父亲 的 女儿")) {return  " 你";}else if (shuru.equals(" 父亲 的 妹妹")) {return  " 姑妈";}else if (shuru.equals(" 父亲 的 姐姐")) {return  " 你 的 姑妈";}else if (shuru.equals(" 父亲 的 哥哥")) {return  " 伯父";}else if (shuru.equals(" 父亲 的 弟弟")) {return  " 叔叔";}else if(shuru.equals(" 哥哥 的 父亲")||shuru.equals(" 弟弟 的 父亲")) {return " 父亲";}else if(shuru.equals(" 哥哥 的 母亲")||shuru.equals(" 弟弟 的 母亲")) {return " 母亲";}else if(shuru.equals(" 哥哥 的 女儿")||shuru.equals(" 弟弟 的 女儿")) {return " 侄女";}else if(shuru.equals(" 哥哥 的 哥哥")) {return " 哥哥";}else if(shuru.equals(" 哥哥 的 儿子")||shuru.equals(" 弟弟 的 儿子")) {return " 侄子";}else if(shuru.equals(" 哥哥 的 妻子")) {return " 嫂子";}else if(shuru.equals(" 哥哥 的 丈夫")||shuru.equals(" 弟弟 的 丈夫")) {return " 你大爷的";}else if(shuru.equals(" 哥哥 的 弟弟")||shuru.equals(" 弟弟 的 哥哥")) {return " 你";}else if(shuru.equals(" 哥哥 的 姐姐")) {return " 姐姐";}else if(shuru.equals(" 哥哥 的 妹妹")) {return " 你";}else if(shuru.equals(" 弟弟 的 妹妹")) {return " 你";}else if(shuru.equals(" 弟弟 的 弟弟")) {return " 你";}else if(shuru.equals(" 弟弟 的 姐姐")) {return " 你";}else if(shuru.equals(" 弟弟 的 妻子")) {return " 弟妹";}else if(shuru.equals(" 姐姐 的 父亲")||shuru.equals(" 妹妹 的 父亲")) {return " 父亲";}else if(shuru.equals(" 姐姐 的 母亲")||shuru.equals(" 妹妹 的 母亲")) {return " 母亲";}else if(shuru.equals(" 姐姐 的 女儿")||shuru.equals(" 妹妹 的 女儿")) {return " 外甥女";}else if(shuru.equals(" 姐姐 的 哥哥")) {return " 哥哥";}else if(shuru.equals(" 姐姐 的 儿子")||shuru.equals(" 妹妹 的 儿子")) {return " 外甥";}else if(shuru.equals(" 姐姐 的 丈夫")) {return " 姐夫";}else if(shuru.equals(" 姐姐 的 妻子")||shuru.equals(" 妹妹 的 妻子")) {return " 你大爷的";}else if(shuru.equals(" 姐姐 的 弟弟")||shuru.equals(" 妹妹 的 哥哥")) {return " 你";}else if(shuru.equals(" 姐姐 的 姐姐")) {return " 姐姐";}else if(shuru.equals(" 姐姐 的 妹妹")) {return " 你";}else if(shuru.equals(" 妹妹 的 妹妹")) {return " 妹妹";}else if(shuru.equals(" 妹妹 的 弟弟")) {return " 弟弟";}else if(shuru.equals(" 妹妹 的 姐姐")) {return " 你";}else if(shuru.equals(" 妹妹 的 丈夫")) {return " 妹夫·";}else if(shuru.equals(" 丈夫 的 父亲")) {return " 公公";} else if (shuru.equals(" 丈夫 的 母亲")) {return  " 婆婆";}else if (shuru.equals(" 丈夫 的 儿子")) {return  " 儿子";}else if (shuru.equals(" 丈夫 的 妻子")) {return  " 你";}else if (shuru.equals(" 丈夫 的 丈夫")) {return  " 你大爷的";}else if (shuru.equals(" 丈夫 的 女儿")) {return  " 女儿";}else if (shuru.equals(" 丈夫 的 妹妹")) {return  " 小姑子";}else if (shuru.equals(" 丈夫 的 姐姐")) {return  " 大姑姐";}else if (shuru.equals(" 丈夫 的 哥哥")) {return  " 大哥";}else if (shuru.equals(" 丈夫 的 弟弟")) {return  " 小叔子";}else if(shuru.equals(" 妻子 的 父亲")) {return " 岳父";} else if (shuru.equals(" 妻子 的 母亲")) {return  " 岳母";}else if (shuru.equals(" 妻子 的 儿子")) {return  " 儿子";}else if (shuru.equals(" 妻子 的 妻子")) {return  " 你大爷的";}else if (shuru.equals(" 妻子 的 丈夫")) {return  " 你";}else if (shuru.equals(" 妻子 的 女儿")) {return  " 女儿";}else if (shuru.equals(" 妻子 的 妹妹")) {return  " 小姨子";}else if (shuru.equals(" 妻子 的 姐姐")) {return  " 大姨子";}else if (shuru.equals(" 妻子 的 哥哥")) {return  " 大舅子";}else if (shuru.equals(" 妻子 的 弟弟")) {return  " 小舅子";}else if(shuru.equals(" 女儿 的 父亲")) {return " 丈夫";} else if (shuru.equals(" 女儿 的 母亲")) {return  " 妻子";}else if (shuru.equals(" 女儿 的 儿子")) {return  " 外孙";}else if (shuru.equals(" 女儿 的 妻子")) {return  " 你大爷的";}else if (shuru.equals(" 女儿 的 丈夫")) {return  " 女婿";}else if (shuru.equals(" 女儿 的 女儿")) {return  " 外孙女";}else if (shuru.equals(" 女儿 的 妹妹")) {return  " 女儿";}else if (shuru.equals(" 女儿 的 姐姐")) {return  " 女儿";}else if (shuru.equals(" 女儿 的 哥哥")) {return  " 儿子";}else if (shuru.equals(" 女儿 的 弟弟")) {return  " 儿子";}else if(shuru.equals(" 儿子 的 父亲")) {return " 丈夫";} else if (shuru.equals(" 儿子 的 母亲")) {return  " 妻子";}else if (shuru.equals(" 儿子 的 儿子")) {return  " 孙子";}else if (shuru.equals(" 儿子 的 妻子")) {return  " 儿媳";}else if (shuru.equals(" 儿子 的 丈夫")) {return  " 你大爷的";}else if (shuru.equals(" 儿子 的 女儿")) {return  " 女儿";}else if (shuru.equals(" 儿子 的 妹妹")) {return  " 女儿";}else if (shuru.equals(" 儿子 的 姐姐")) {return  " 女儿";}else if (shuru.equals(" 儿子 的 哥哥")) {return  " 大儿子";}else if (shuru.equals(" 儿子 的 弟弟")) {return  " 儿子";}return shuru;}}
}

         总结:好像亲戚计算方法可以用别的更好的计算方法,我这里偷个懒用的equals方法,目前只支持二代亲戚,更多代的用这个写太多了,还要注意一些伦理问题,比如爸爸的丈夫,就要看自己怎么弄了。

        之后的改进建议就是反向检索,比如在输出框打字输入舅舅可以在输入框显示妈妈的哥哥,感兴趣的可以试一试。我的这个方法要改进的话基本是再写一遍亲戚计算方法,可以想想别的更好用的方法,跟我探讨交流一下。可能以后会做一期视频教大家写一写这个,不过我太菜了ahhhhh。

        我个人的公众号:大饼的IT客栈   喜欢编程分享,算法题解,软件安利,开源项目分享都可以关注一下。

        新人第一次发csdn的文章,写的不是太好,请多多指出改正,大家多多关注多多点赞哈。

谢谢大家观看

开源分享 | java项目 | 亲戚计算器-编程知识网