三个 类 之间运行时的数据更改和传输
Data Alter & Transfer during Runtime between Three Classes
我做三个classes DataTransfer, RetrieveData and StudSAllR
两个classes RetrieveData and StudSAllR
是JFrame Form
数据传输Class:
我在DataTransferclass中做了一个可变整型的数据成员(Select),做了两个方法getSelect()
和setSelect(int Select1)
,代码如下:
class DataTransfer {
int Select;
public void setSelect(int Select1){
Select=Select1;
}
public int getSelect(){
return Select;
}
}
检索数据Class:
在这个 class 中,我有两个按钮 jButton2
和 jButton4
,在这两个按钮的 ActionListener 下,它们都是 DataTransfer class 的对象并设置值在 jButton2 中为 set Select 0 & 1
1 和 jButton4 中的 0 调用 setSelect() 方法,在设置值后两个按钮都指向第三个 class StudSAAllR,下面是给出的代码:
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
DataTransfer DT = new DataTransfer();
DT.setSelect(0);
System.out.println(DT.getSelect()+"RD");
StudSAllR.main(new String[0]);
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
DataTransfer DT = new DataTransfer();
DT.setSelect(1);
System.out.println(DT.getSelect()+"RD");
StudSAllR.main(new String[0]);
}
StudSAAllR Class:
在这个 class 下,我正在创建 DataTransfer 的对象,现在通过调用 getSelect 方法我返回 select 值但是,
问题是它只返回 0 值,我按 jButton2 或 jButton4 它 returns 0
我还在两个按钮的 ActionListener 中设置了 System.out.println(DT.getSelect()+"RD");
returns jButton2 的值为 1,jButton4 的值为 0
当我在 class 3 中调用此 get 方法时,它 returns 只有零,请大家帮忙!!
这是因为您在按钮的动作侦听器中构造的 DataTransfer 对象对于这些方法而言是本地的。它们的生命周期仅限于该方法的范围。如果你想在不同的class中使用设置值,有不同的方法。
将DataTransfer
对象传递给其他classStudSAllR
的方法,但是你不能使用main()
因为main()
是应该只接受 String... args
所以创建一个新的静态方法可能叫做 processDataTransfer()
public static void processDataTransfer( String... args, DataTransfer dt )
{
int select = dt.getSelect();
}
将DataTransfer
中的Select
设为静态,同时将getSelect()
和setSelect(int select)
设为静态,那么就不需要初始化class 在按钮的动作侦听器中。只是做:DataTransfer.setSelect(1);
在您的 StudSAllR.main(String... args)
中调用 getSelect()
为:
public static void main(String... args)
{
int select = DataTransfer.getSelect();
}
在1、2中选择什么真的取决于你的要求。
我做三个classes DataTransfer, RetrieveData and StudSAllR
两个classes RetrieveData and StudSAllR
是JFrame Form
数据传输Class:
我在DataTransferclass中做了一个可变整型的数据成员(Select),做了两个方法getSelect()
和setSelect(int Select1)
,代码如下:
class DataTransfer {
int Select;
public void setSelect(int Select1){
Select=Select1;
}
public int getSelect(){
return Select;
}
}
检索数据Class:
在这个 class 中,我有两个按钮 jButton2
和 jButton4
,在这两个按钮的 ActionListener 下,它们都是 DataTransfer class 的对象并设置值在 jButton2 中为 set Select 0 & 1
1 和 jButton4 中的 0 调用 setSelect() 方法,在设置值后两个按钮都指向第三个 class StudSAAllR,下面是给出的代码:
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
DataTransfer DT = new DataTransfer();
DT.setSelect(0);
System.out.println(DT.getSelect()+"RD");
StudSAllR.main(new String[0]);
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
DataTransfer DT = new DataTransfer();
DT.setSelect(1);
System.out.println(DT.getSelect()+"RD");
StudSAllR.main(new String[0]);
}
StudSAAllR Class:
在这个 class 下,我正在创建 DataTransfer 的对象,现在通过调用 getSelect 方法我返回 select 值但是,
问题是它只返回 0 值,我按 jButton2 或 jButton4 它 returns 0
我还在两个按钮的 ActionListener 中设置了 System.out.println(DT.getSelect()+"RD");
returns jButton2 的值为 1,jButton4 的值为 0
当我在 class 3 中调用此 get 方法时,它 returns 只有零,请大家帮忙!!
这是因为您在按钮的动作侦听器中构造的 DataTransfer 对象对于这些方法而言是本地的。它们的生命周期仅限于该方法的范围。如果你想在不同的class中使用设置值,有不同的方法。
将
DataTransfer
对象传递给其他classStudSAllR
的方法,但是你不能使用main()
因为main()
是应该只接受String... args
所以创建一个新的静态方法可能叫做processDataTransfer()
public static void processDataTransfer( String... args, DataTransfer dt ) { int select = dt.getSelect(); }
将
DataTransfer
中的Select
设为静态,同时将getSelect()
和setSelect(int select)
设为静态,那么就不需要初始化class 在按钮的动作侦听器中。只是做:DataTransfer.setSelect(1);
在您的 StudSAllR.main(String... args)
中调用 getSelect()
为:
public static void main(String... args)
{
int select = DataTransfer.getSelect();
}
在1、2中选择什么真的取决于你的要求。