2009年4月19日星期日

自动生成姓名程序

学习java几个月,自己完成的第一个小程序!!
输入姓和名字中所含有的字,自动生成姓名程序!
jdk 1.6
[attach]697547[/attach]
原代码如下,请安装java环境运行!
/**
* @(#)Name.java
*
*
* @author superbbb 网络巡警
* @version 1.00 2009/3/19
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowAdapter;
import java.io.PrintWriter;
import java.io.FileNotFoundException;
import java.io.IOException;
//import java.lang.String;

public class Name1 {
JFrame f =null;
JTextField xing1 =null;
JTextField ming1 =null;
JTextArea out1=null;
myMenu mymenu=new myMenu();
public Name1(){
f = new JFrame("Name V1.00 [龙族联盟]");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton b = new JButton("开始");
JPanel p= new JPanel(new FlowLayout(FlowLayout.LEFT,5,10));
xing1 =new JTextField(2);
ming1 = new JTextField(25);
out1=new JTextArea("请勿输入空名空姓!");

JLabel xing = new JLabel("输入你的姓:");
JLabel ming = new JLabel("请输入名字中所含的字:");
JLabel x = new JLabel("输入完成");

//设置菜单开始
JMenuBar mbar=new JMenuBar();
f.setJMenuBar(mbar);

JMenu optionMenu=new JMenu("操作");
JMenuItem optionMenu1,optionMenu2,optionMenu3;
optionMenu.add(optionMenu1=new JMenuItem("控制台输出"));
optionMenu.add(optionMenu2=new JMenuItem("保存"));
optionMenu.add(optionMenu3=new JMenuItem("关闭"));
mbar.add(optionMenu);

JMenu setMenu=new JMenu("设置");
JMenuItem setMenu1,setMenu2,setMenu3;
setMenu.add(setMenu1=new JMenuItem("设置姓"));
setMenu.add(setMenu2=new JMenuItem("设置名"));
setMenu.add(setMenu3=new JMenuItem("生成"));
mbar.add(setMenu);

JMenu help=new JMenu("帮助");
JMenuItem help1,help2;
help.add(help1=new JMenuItem("说明"));
help.add(help2=new JMenuItem("关于..."));
mbar.add(help);
//设置菜单结束
p.add(xing);
p.add(xing1);
p.add(ming);
p.add(ming1);
p.add(x);
p.add(b);
f.add(p,"North");
f.add(out1,"Center");


f.setSize(700,500);
f.setLocation(150,100);

MyMonitor mm = new MyMonitor();
b.addActionListener(mm);
setMenu3.addActionListener(mm);

help1.addActionListener(mymenu);
help2.addActionListener(mymenu);
optionMenu3.addActionListener(mymenu);
optionMenu2.addActionListener(mymenu);
optionMenu1.addActionListener(mymenu);
setMenu1.addActionListener(mymenu);
setMenu2.addActionListener(mymenu);
setMenu3.addActionListener(mymenu);

//f.setResizable(false);
f.setVisible(true);
}

public class MyMonitor implements ActionListener{

public void actionPerformed(ActionEvent e) {

//得到姓和名,进行组合排列
out1.setText("");
String xing2=(xing1.getText()).replace(" ","");
String ming2=(ming1.getText()).replace(" ","");
String[] ming3=new String[ming2.length()];

ming3=ming2.split("");

//if ((xing2.equals("")) || (ming3.equals(""))) //这里进行判断输入为空一直不成功!
int i,j;
int sum=0;
out1.append("----生成姓名如下---- \n\n");
for(i=1;i<=ming2.length();i++)
{ for(j=1;j<=ming2.length();j++)
{
sum++;
out1.append(xing2+ming3+ming3[j]+"\t");
}
out1.append("\n\n");
}//01 over
out1.append("共生成姓名: "+sum+" 个");
//}
/*
else {
JOptionPane.showMessageDialog(f,"错误: 你输入的姓或名为空!\n\n程序退出!请重新运行!","输入错误!", JOptionPane.WARNING_MESSAGE);
//System.exit(0);
}*/

}

}

public class myMenu implements ActionListener{
String xin,min;
public void actionPerformed(ActionEvent e){
String s = e.getActionCommand();

if(s.equals("控制台输出")){
System.out.println(out1.getText());
}else if(s.equals("保存")){
JFileChooser chooser = new JFileChooser();
int returnVal = chooser.showSaveDialog(f);

if(returnVal==JFileChooser.APPROVE_OPTION){
try{
PrintWriter fw=new PrintWriter(chooser.getSelectedFile());
out1.write(fw);
fw.close();
}catch (FileNotFoundException ex){
System.err.println("文件发生异常"+ex);
ex.printStackTrace();
}catch (IOException e1) {
JOptionPane.showMessageDialog(null, e1.getMessage());
}
}
}else if(s.equals("关闭")){
int result = JOptionPane.showConfirmDialog(f,"您真的要退出程序吗?", "请确认", JOptionPane.YES_NO_OPTION);
if(result == JOptionPane.OK_OPTION){
System.exit(0);
}
}else if(s.equals("设置姓")){
xin = JOptionPane.showInputDialog("请输入您的姓名:");
xing1.setText(xin);
}else if(s.equals("设置名")){
min = JOptionPane.showInputDialog("请输入名字中包含字:");
ming1.setText(min);
}else if(s.equals("关于...")){
JOptionPane.showMessageDialog(null, "Namw 1.00 \n龙族联盟 网络巡警 制作","关于Name", JOptionPane.PLAIN_MESSAGE);
}else if(s.equals("说明")){
JOptionPane.showMessageDialog(null, " 自动取名器,输入姓,输入名字中含有的字后,点开始生成姓名! \n 你有好的建议,请于QQ: 317141145 Mail: c02949@163.com联系!\n 龙族联盟 网络巡警 谢谢您的支持!","Name说明", JOptionPane.PLAIN_MESSAGE);
}
}

}

public static void main (String[] args) {
new Name1();
}

}

程序中判断输入为空提示我一直搞不好,请高手帮我看看那个条件怎么设置!

打包原代码[attach]697548[/attach]

没有评论:

发表评论