|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。花了一点点工夫,写了一个类玩玩,但愿有点用。
类是怎样用的呢?
好比:输出:
publicclassName;
privateStringvariable1;
privateIntegervariable2;
privateDoublevariable3;
点击Generate!,后,输入:
publicclassName{
privateStringvariable1;
privateIntegervariable2;
privateDoublevariable3;
publicStringgetVariable1()
{
returnvariable1;
}
publicvoidsetVariable1(Stringvariable1)
{
this.variable1=variable1;
}
publicIntegergetVariable2()
{
returnvariable2;
}
publicvoidsetVariable2(Integervariable2)
{
this.variable2=variable2;
}
publicDoublegetVariable3()
{
returnvariable3;
}
publicvoidsetVariable3(Doublevariable3)
{
this.variable3=variable3;
}
}
哈哈,人人就晓得它的用途了吧
源代码:
ClassGen.javacom.jrock.util
packagecom.jrock.util;
/**
*输出的字符串格局为
*限制符类名;
*变量;变量;变量;...
*变量格局为{限制符数据范例变量名}
*个中:限制符(private/...)不克不及省
*类名不克不及省
*数据范例(Integer/...)不克不及省
*变量名不克不及省
*@version1.0
*/
publicclassClassGen{
publicClassGen(){
}
//往失落过剩的空格
privatestaticvoiddismissBlank(String[]array)
{
intlen=array.length;
booleanover=false;
while(!over){
over=true;
for(inti=0;i<len;i++){
if(array[i].equals("")){
for(intj=i;j<len-1;j++){
array[j]=array[j+1];
}
len--;over=false;
}
}
}
}
publicstaticStringoutGetter(StringparStr)
{
String[]array=parStr.split("");
if(array.length<3)returnnull;
dismissBlank(array);
Stringtype=array[1];
Stringpar=array[2];
StringBufferresult=newStringBuffer();
result.append("public"+type+"get"+par.substring(0,1).toUpperCase()+par.substring(1));
result.append("()
{
return"+par+";
}
");
returnresult.toString();
}
publicstaticStringoutSetter(StringparStr)
{
String[]array=parStr.split("");
if(array.length<3)returnnull;
dismissBlank(array);
Stringtype=array[1];
Stringpar=array[2];
StringBufferresult=newStringBuffer();
result.append("publicvoidset"+par.substring(0,1).toUpperCase()+par.substring(1));
result.append("("+type+""+par+")
{
this."+par+"="+par+";
}");
returnresult.toString();
}
//取得函数的主体
publicstaticStringgetClassContent(Stringin)
{
if(in==null)return"";
in=in.replace(
,).trim();
if(in.equals(""))return"";
StringBufferresult=newStringBuffer();
String[]parArray=in.split(";");
if(parArray.length>0){
//输入类名
result.append(parArray[0]+"{
");
//输入变量
for(inti=1;i<parArray.length;i++){
result.append(parArray[i]+";
");
}
//输入setter和getter
for(inti=1;i<parArray.length;i++){
result.append(outGetter(parArray[i])+"
");
result.append(outSetter(parArray[i])+"
");
}
result.append("}");
}
returnresult.toString();
}
//测试用的
publicstaticvoidmain(String[]args){
StringinStr="publicclassName;
"+
"privateStringvariable1;
"+
"privateIntegervariable2;
"+
"privateDoublevariable3;
";
System.out.println(getClassContent(inStr));
}
}
GUI:
ClassGenApplication.javacom.jrock.util
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
importcom.jrock.util.ClassGen;
publicclassClassGenApplication{
publicComponentcreateComponents(){
StringinStr="publicclassName;
"+
"privateStringvariable1;
"+
"privateIntegervariable2;
"+
"privateDoublevariable3;";
finalJTextAreatext1=newJTextArea(inStr,20,40);
finalJTextAreatext2=newJTextArea("",20,50);
text1.setFont(newjava.awt.Font("Arial",java.awt.Font.PLAIN,20));
text2.setFont(newjava.awt.Font("Arial",java.awt.Font.PLAIN,12));
//Createascrollabletextarea
JScrollPanesp1=newJScrollPane(text1);
JScrollPanesp2=newJScrollPane(text2);
JButtonbutton=newJButton("Generate!");
button.setMnemonic(KeyEvent.VK_I);
button.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
text2.setText(
ClassGen.getClassContent(text1.getText()));
}
});
JPanelpane=newJPanel();
pane.setBorder(BorderFactory.createEmptyBorder(
20,//top
20,//left
200,//bottom
200)//right
);
pane.setLayout(newGridLayout(0,1));
pane.add(sp1);
pane.add(button);
pane.add(sp2);
returnpane;
}
publicstaticvoidmain(String[]args){
try{
UIManager.setLookAndFeel(
UIManager.getCrossPlatformLookAndFeelClassName());
}catch(Exceptione){}
//Createthetop-levelcontainerandaddcontentstoit.
JFrameframe=newJFrame("类天生工具");
ClassGenApplicationapp=newClassGenApplication();
Componentcontents=app.createComponents();
frame.getContentPane().add(contents,BorderLayout.CENTER);
//Finishsettinguptheframe,andshowit.
frame.addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
});
frame.pack();
frame.setVisible(true);
}
}
Thanks.
JAVA是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由升阳(SunMicrosystems)公司的詹姆斯·高斯林(JamesGosling)等人于1990年代初开发。 |
|