我做的界面是多层嵌套结构的,顶层是jfame窗口,里面除了菜单以外就是一个jPanle容器(Cardlayout布局),在菜单里的按扭控制将别的新建的jPanle类加载到顶层窗口的这个Jpanle里面,我现在想要做的是点了菜单里面的打印键后,能够将加载的新Jpanle容器里的表格数据打印出来,我打印是做为一个单独的类,只要传递要打印的卡片名就可以,怎么样才能让程序自动判断出单前是哪张卡片啊??

解决方案 »

  1.   

    怎么样才能让程序自动判断出单前是哪张卡片啊??自己写程序指定,
    定义一个全局静态的变量
    你操作哪个Card就把哪个Card的表对象获取传给全局变量,一般监听激活事件.
    然后你打印时就打印这个全局变量对应表对象的数据就OK啦
      

  2.   

    但是我新建的jpanle中也有嵌套的card,最多的有3层啊,怎么监听呢
      

  3.   

    你是给Card添加监听,又不是给panel添加监听,
    如果不行就用焦点监听,
      

  4.   

    卡片里面还有别的卡片,就是说大容器里有小容器,小容器里还有小容器.
    哦,这个我懂啦,可是你最后激活的只能是一个card啊,你应该对每个card添加监听.
    焦点监听FocusListener 就是这个接口
      

  5.   

    你应该是点击Button来触发激活事件显示对应的Panel,这个一般都是这么写吧.
    那你就可以直接获取到那个表对象啦,你把所有的Button加上监听就可以啦,你都可以show,怎么能获取不到表对象那,(这里是最想不通的);
    你就在Jpanle1 里接着加监听好啦,这个>_<.
      

  6.   

    这里打印的按钮在顶层容器里,而表对象则在内部容器的内部容器的内部
    第3层内部容器又是靠第2层内部容器的按钮监听动作再来show的,所以在顶层很难知道在第3层容器里到底是什么表对象
      

  7.   

    所以让你show的时候把表对象传给全局变量,你取全局变量的值就是啦啊,