關于JavaBean的問題.. 我在屬性代碼中有加getter, setter,怎麼它不會去執行我的setter

jxxiaojian 2002-04-20 02:01:44
我在屬性代碼中有加getter, setter,怎麼它不會去執行我的setter,本來按道理來說我的文本框的類型是OK, 怎麼還是null呢..是不是要讓設成限定屬性..
不過我還沒有去編譯Bean..還請各位幫忙看一下..
import java.awt.*;
class tdmBean extends TextField implements Serializable
{
public String text="";
public string gettext()
{ return text;}
public void settext(String newtext)
{ text=newtext;
this.setText(text);
}
public tdmBean()
{
text="";
}
public static void main(String[] args)
{ tdmBean tdm = new tdmBean();
tdm.text="OK";
Frame a =new Frame();
a.setLayout(null);
tdm.setBounds(new Rectangle(81, 40, 75, 21));
aFrame.setLayout(null);
a.add(tdm, null);
a.pack();
a.setSize(300,300);
a.setVisible(true) ;
}}




...全文
21 点赞 收藏 11
写回复
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jxxiaojian 2002-04-24
Javabean的注冊要如何實現呢..
回复
lianyunzxp 2002-04-23
而且在Bean中也没有这么用的public String text1="";
一般都是Private
这样再通过Set,Get来访问私有变量
回复
jxxiaojian 2002-04-22
還望指點呀,,絕對給分 ..
回复
jxxiaojian 2002-04-22
但我疑惑的就是為什麼..
在第一段代碼中的
tdm.text="OK";
它會去執行,tdm.setText("OK")
而第二段代碼中
tdm.isnull=true;
它确不會去執行
tdm.setText
難道非得執行這個tdm.setIsNull才會執行這段tdm.setText
這是什麼原因??望給個說明?
回复
lianyunzxp 2002-04-22
当然了,因为你继承的是TextField,调用的是TextField的setText,如果你要想自己写一个Bean,你一定要把它打包成Jar文件,然后再其他文件中调用他,你这样写当然不行了.在第一段代碼中的
tdm.text="OK";
會去執行TextField的方法tdm.setText("OK")
而第二段代碼中tdm.isnull=true;它的确不會去執行tdm.setText
因为你这个Bean不对
回复
jxxiaojian 2002-04-22
是不是只能用setter的方法才能改控件的值..
真是搞不明白..
mport java.awt.*;
class tdmBean extends TextField implements Serializable
{
public String text1="";
public boolean isNull=false;
public boolean getText()
{ System.out.println("text1="+text1);
return text1;}
public void setText(String ctext)
{ text1=ctext;
this.setText(text1 );
}
public tdmBean()
{
text="";
}
public static void main(String[] args)
{ tdmBean tdm = new tdmBean();
tdm.text1="OKOK";
Frame a =new Frame();
a.setLayout(null);
tdm.setBounds(new Rectangle(81, 40, 75, 21));
aFrame.setLayout(null);
a.add(tdm, null);
a.pack();
a.setSize(300,300);
a.setVisible(true) ;
}}
而顯示的組件顯示的結果又可以為"OKOK",,即使你殺掉setText(String ctext)的方法,組件的值也顯示"OKOK"
本來按道理的說法getText只是讀取組件的值..
另外我搞不懂就是設了text1的變量, 而不是text. 而它怎麼會去調用getText的方法
回复
Joeblackyang 2002-04-20
把 main()中的tdm.isNull=true; 换成:
tdm.setIsNull(true);
回复
jxxiaojian 2002-04-20
線上就沒有JavaBean 方面的高手嗎..
回复
jxxiaojian 2002-04-20
快幫我想一下這個問題..
是不是要加上PropertyChange這些事件
回复
jxxiaojian 2002-04-20
我剛剛有試出也正如你所說..
但是如果我添加一個屬性确還是不行..
是不是它指定的屬性才能那樣用..
比如我現在增加一個IsNull
import java.awt.*;
class tdmBean extends TextField implements Serializable
{
public String text="";
public boolean isNull=false;
public boolean isIsNull()
{ return isNull;}
public void setIsNull(boolean cnull)
{ isNull=cnull;
this.setText((isNull==true) ? "Yes" :"No" );
}
public tdmBean()
{
text="";
}
public static void main(String[] args)
{ tdmBean tdm = new tdmBean();
tdm.isNull=true;
Frame a =new Frame();
a.setLayout(null);
tdm.setBounds(new Rectangle(81, 40, 75, 21));
aFrame.setLayout(null);
a.add(tdm, null);
a.pack();
a.setSize(300,300);
a.setVisible(true) ;
}}
文本框是null,請說說這是什麼..

回复
dylanwolf 2002-04-20
private String text;

Change to the name of "getText()", "setText()"

回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告