您的位置:程序门 -> java -> j2se / 扩展类



图形界面的类怎么做成接口形式让其可以交互?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


图形界面的类怎么做成接口形式让其可以交互?[已结贴,结贴人:iamzgy]
发表于:2007-04-21 18:45:55 楼主
比如2个类,a和b,b是图形界面,一个窗体上有2个按钮 "确定 "和“取消”

现在a要调用b,当点击不同按钮时候a输出不同的消息。。这个机制怎么实现?
发表于:2007-04-21 19:58:531楼 得分:0
这里面是不是牵涉到线程了?...
发表于:2007-04-21 23:06:402楼 得分:0
public   class   b
{
a   a;
public   void   seta(a   a)
{
this.a   =   a;
}
...
actionperformed:   a.print(...);
...
}
main:   a   a   =   new   a();
            b   b   =   new   b();
            b.seta(a);
            ...
发表于:2007-04-22 11:23:453楼 得分:0
楼上的没理解我意思。。。。我指的是b这个图形界面的操作怎么与外界交互。。这样就可以根据点哪个按钮实现不同的流程。。。
发表于:2007-04-22 23:59:434楼 得分:0
哪儿那么麻烦,用joptionpane的对话框不就完了?!
发表于:2007-04-23 09:22:155楼 得分:0
joptionpane我当然知道,但这是自己类里,现在要把joptionpane选择的结果传到外面去。。
发表于:2007-04-24 09:40:386楼 得分:0
没人?。。。
发表于:2007-04-24 15:38:017楼 得分:0
import   javax.swing.*;
import   java.awt.*;
import   java.awt.event.*;

public   class   a   extends   jframe{
    jpanel   jpanel1   =   new   jpanel();
    jbutton   jbutton1   =   new   jbutton();
    jbutton   jbutton2   =   new   jbutton();
    b   b=new   b();
    public   a()   {
        try   {
            jbinit();
            this.setsize(300,200);
            this.show();
            b.show();
        }
        catch(exception   e)   {
            e.printstacktrace();
        }
    }
    public   static   void   main(string[]   args)   {
        a   a1   =   new   a();
    }
    private   void   jbinit()   throws   exception   {
        jbutton1.settext( "确定 ");
        jbutton1.addactionlistener(new   a_jbutton1_actionadapter(this));
        jbutton2.settext( "取消 ");
        jbutton2.addactionlistener(new   a_jbutton2_actionadapter(this));
        this.getcontentpane().add(jpanel1,     borderlayout.center);
        jpanel1.add(jbutton1,   null);
        jpanel1.add(jbutton2,   null);
    }

    void   jbutton1_actionperformed(actionevent   e)   {
        b.jtextarea1.append(jbutton1.gettext());
        b.jtextarea1.append( "\n ");
    }

    void   jbutton2_actionperformed(actionevent   e)   {
        b.jtextarea1.append(jbutton2.gettext());
        b.jtextarea1.append( "\n ");
    }

}

class   a_jbutton1_actionadapter   implements   java.awt.event.actionlistener   {
    a   adaptee;

    a_jbutton1_actionadapter(a   adaptee)   {
        this.adaptee   =   adaptee;
    }
    public   void   actionperformed(actionevent   e)   {
        adaptee.jbutton1_actionperformed(e);
    }
}

class   a_jbutton2_actionadapter   implements   java.awt.event.actionlistener   {
    a   adaptee;

    a_jbutton2_actionadapter(a   adaptee)   {
        this.adaptee   =   adaptee;
    }
    public   void   actionperformed(actionevent   e)   {
        adaptee.jbutton2_actionperformed(e);
    }
}
发表于:2007-04-24 15:38:218楼 得分:0
import   javax.swing.*;
import   java.awt.*;

public   class   b   extends   jframe{
    jscrollpane   jscrollpane1   =   new   jscrollpane();
    public   static   jtextarea   jtextarea1   =   new   jtextarea();
    public   b()   {
        try   {
            jbinit();
            this.setsize(400,300);
        }
        catch(exception   e)   {
            e.printstacktrace();
        }
    }
    public   static   void   main(string[]   args)   {
        b   b1   =   new   b();
    }
    private   void   jbinit()   throws   exception   {
        this.getcontentpane().add(jscrollpane1,   borderlayout.center);
        jscrollpane1.getviewport().add(jtextarea1,   null);
    }

}
发表于:2007-04-25 14:08:269楼 得分:0
楼上的还是没有懂我的意思,我估计这里牵涉到同步锁的问题。。

class   a{

public   static   void   main   (){
      b   b=new   b()     //(1)
      if(...)
        system.out.println(...)
    else
        system.out.println(...)
 
}

}

//类b是图形界面的
class   b   extends   jframe{

里面基本代码就和图形类一样,有2个按钮组件

void   jbutton1_actionperformed(actionevent   e)   {     //“确定”按钮的事件方法
???怎么写
}

}

基本代码就上面的,现在运行a,在执行完语句1后,也就是b类被创建后,这时候应该跳出来图形界面,但此时a的流程却也继续下去,执行if、else语句了。。现在我要求的是,在初始化b后,a的流程停下来,等我在跳出来的b的图形界面上点击确定或者是取消按钮后再   执行if、else

当然我知道要实现这种效果语句1不是这么写的,而且要把点击按钮的结果传到a里也应该有个办法,现在问题就是怎么写。。。

发表于:2007-04-25 15:44:4910楼 得分:40
你把图形类b用jdialog基类实现,jdialog有个方法setmodel(boolean   b)
把它设置成true,然后setvisible(true),程序走到这里就终止了.
至于返回值也可以实现,我反正用jdialog基类实现过这个需求,和你的需求一样.

核心就是setmodel()方法

发表于:2007-04-25 16:50:1911楼 得分:0
多谢楼上的。。。。


快速检索

最新资讯
热门点击