该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
import javax.swing.*;
import javax.swing.JOptionPane;
import java.util.regex.Pattern;
import java.awt.*;
import java.awt.event.*;
class test extends JFrame implements ActionListener
{
JPanel p1,p2,p3;
JTextField t1;
JTextArea text1;
JLabel l1;
JButton b1;
JMenuBar mb;
JMenu mMenu;
JMenuItem mAbout,mQuit,mHelp;
int score=0,amount=0;//人品值和汉字个数计数器初始化
String about,name;
public test()
{
super("人品计算器");
t1 = new JTextField(14);
text1 = new JTextArea(" 请输入要测试的名字,然后点击计算\n\n 本程序内容纯属虚构, 仅供娱乐之用,\n\n 如有雷同,你丫来打我呀。。。",7,19);
text1.setEditable(false);
text1.setLineWrap(true);
l1 = new JLabel("人品计算器",JLabel.CENTER);
mb = new JMenuBar();
mMenu = new JMenu("菜单(M)");
mAbout = new JMenuItem("关于(A)");
mQuit = new JMenuItem("退出(Q)");
mHelp = new JMenuItem("帮助(H)");
mMenu.setMnemonic('M');
mAbout.setMnemonic('A');
mQuit.setMnemonic('Q');
mHelp.setMnemonic('H');
mb.add(mMenu);
mMenu.add(mAbout);
mMenu.add(mHelp);
mMenu.add(mQuit);
mAbout.addActionListener(this);
mQuit.addActionListener(this);
mHelp.addActionListener(this);
b1 = new JButton("计算");
b1.addActionListener(this);
p1 = new JPanel();
p2 = new JPanel();
p3 = new JPanel();
p3.setLayout(new FlowLayout());
p3.add(t1);
p3.add(b1);
p1.setLayout(new GridLayout(2,1));
p1.add(l1);
p1.add(p3);
p2.setLayout(new FlowLayout());
p2.add(text1);//计算结果显示框
setLayout(new GridLayout(2,1));
add(p1);
add(p2);
setJMenuBar(mb);
setLocation(450,150);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(310,380);
setResizable(false);
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("关于(A)"))//菜单项
{
JOptionPane.showMessageDialog(null," 作者: 姜佳君\n 时间: 2014.06.26\n 版本号: v1.0\n","关于计算器",JOptionPane.PLAIN_MESSAGE);
return;
}
if(e.getActionCommand().equals("帮助(H)"))//菜单项
{
JOptionPane.showMessageDialog(null,"按ALT+相应的快捷键可打开相应的菜单项,如:\n ALT + M 菜单栏\n ALT + H 帮助\n ALT + A 关于\n ALT + Q 退出","帮助",JOptionPane.PLAIN_MESSAGE);
return;
}
if(e.getActionCommand().equals("退出(Q)"))
{System.exit(0);return;}
if(e.getSource()==b1)
{
name = t1.getText();
amount=0;
for (int i = 0; i < name.length(); i++) {// 遍历字符串每一个字符
// 使用正则表达式判断字符是否属于汉字编码
boolean matches = Pattern.matches("^[\u4E00-\u9FA5]{0,}$", ""+ name.charAt(i));
if (matches) {// 如果是汉字
amount++;// 累加计数器
}
}
jisuan();
setEnd(name,score,about);
}
}
public void jisuan()
{
if(amount<2)
{
score = -100;
about = "这样奇怪的名字,人品负数妥妥的";
}
else
{
score=0;
for(int i=0;i
score+=(int)name.charAt(i);
for(;score>100;)
score=score/10;
text1.setText(score+"");
}
setAbout();
}