我制作了三个课程DataTransfer, RetrieveData and StudSAllR
两个课程RetrieveData and StudSAllR
为JFrame Form
DataTransfer类:
我在变量integer的DataTransfer类中创建了一个数据成员(Select),并创建了两个方法getSelect()
和setSelect(int Select1)
,代码如下:
class DataTransfer {
int Select;
public void setSelect(int Select1){
Select=Select1;
}
public int getSelect(){
return Select;
}
}
RetrieveData类:
在这个类中我有两个按钮jButton2
和jButton4
,在这两个按钮的ActionListener下,它们都是通过调用setSelect()方法设置DataTransfer类的对象并设置值。 1}}在jButton2中为1,在jButton4中为0,在设置值后,两个按钮都指向第三类StudSAllR,下面是给出的代码:
0 & 1
StudSAllR课程:
在这个类下,我正在制作DataTransfer的对象,现在通过调用getSelect方法返回选择值,但是,
问题是它只返回0值,我按jButton2或jButton4它返回0
我还在两个按钮的ActionListener中设置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]);
}
,为jButton2返回值1,为jButton4返回0
当我在第3课中调用这个get方法时,它只返回零,请大家帮忙!!
答案 0 :(得分:0)
这是因为您在按钮的动作侦听器中构造的DataTransfer对象是这些方法的本地对象。它们的寿命仅限于该方法的范围。如果要在不同的类中使用设置值,则有不同的方法。
将1/2
个对象传递给其他类DataTransfer
的方法,但之后您无法使用StudSAllR
,因为main()
应该仅接受main()
所以创建一个新的静态方法,可能叫做String... args
processDataTransfer()
在public static void processDataTransfer( String... args, DataTransfer dt )
{
int select = dt.getSelect();
}
中设置Select
静态,并使DataTransfer
和getSelect()
为静态,然后您无需在按钮的动作侦听器中初始化该类。只需:setSelect(int select)
在DataTransfer.setSelect(1);
电话StudSAllR.main(String... args)
中:
getSelect()
1,2之间的选择实际上取决于您的要求。