首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

报着希望,看有人回答没,100分,顶者都有分吧 看以下程序,怎么实现2个框架的通信

2012-01-30 
报着希望,看有人回答没,100分,顶者都有分吧 看以下程序,如何实现2个框架的通信?importjava.awt.BorderLayo

报着希望,看有人回答没,100分,顶者都有分吧 看以下程序,如何实现2个框架的通信?
import   java.awt.BorderLayout;
import   javax.swing.JFrame;
import   javax.swing.JLabel;
import   java.awt.event.KeyAdapter;
import   java.awt.event.KeyEvent;
import   javax.swing.ImageIcon;
import   java.awt.event.ActionListener;
import   javax.swing.Timer;
import   java.awt.event.ActionEvent;
import   java.io.File;

public   class   full_Frame   extends   JFrame   {
        BorderLayout   borderLayout1   =   new   BorderLayout();
        static   Timer   AutoTimer;
        ImageIcon   icon   =   new   ImageIcon( "./src/image/1.jpg ");
        JLabel   jLabel1   =   new   JLabel(icon);
        private   String[]   getFile()
            {
                            File   f=new   File( "./src/image/ ");
                            return   f.list();
            }
            int   i=1;
            String[]   files=getFile();

        public   full_Frame()   {

                try   {
                        jbInit();
                }   catch   (Exception   exception)   {
                        exception.printStackTrace();
                }
        }
      public   void   jbInit()   throws   Exception   {
                getContentPane().setLayout(borderLayout1);

                this.getContentPane().add(jLabel1,   java.awt.BorderLayout.CENTER);

                AutoTimer   =   new   Timer(3000,   new   ActionListener()   {

                      public   void   actionPerformed(ActionEvent   e)   {
                              if   (i   ==files.length-1)
                              i   =   1;
                              icon   =   new   ImageIcon( "./src/image/ "   +   files[i]);
                              jLabel1.setIcon(icon);
                              jLabel1.repaint();
                              i++;
                      }


              });
          final   JFrame   fram   =   new   JFrame( "full   screen ");
          fram.getContentPane().add(jLabel1,   BorderLayout.CENTER);
          fram.setExtendedState(JFrame.MAXIMIZED_BOTH);
          fram.setAlwaysOnTop(true);
          fram.setUndecorated(true);
          fram.setVisible(true);

          AutoTimer.start();

          fram.addKeyListener(new   KeyAdapter()   {
                  public   void   keyPressed(KeyEvent   e)   {
                          if   (e.getKeyCode()   ==   KeyEvent.VK_ESCAPE||e.getKeyCode()   ==   KeyEvent.VK_C)   {

                                  fram.setVisible(false);
                                  fram.dispose();
                                  AutoTimer.stop();
                          }
                  }
          });
        }
}
////////////////////////////////////


[解决办法]
帮你顶下。。。
[解决办法]
全局变量?
或者使用属性文件存放,每次取i的时候都从属性文件中获取,更改时也更新。
不过,这两种方法都有点笨,但应该可以解决问题。
[解决办法]
在full_Frame的监听键盘事件那边把当前图片反馈给Player_Frame
[解决办法]
再用一个单字模式的类,里面提供一个静态的变量i
这样应该可以实现共享吧!!!!!!!!!!!!!!
[解决办法]
绑顶
[解决办法]
用单态模式
[解决办法]
你这种情况需要使用继承,即编写一个基类 BaseFrame extends JFrame 将i和getfile等可重用的方法和成员变量定义为公有的或受保护的
public abstract class BaseFrame extends JFrame
{
protected int i=1;
protected String[] files=getFile();

public String[] getFile()
{
File f=new File( "./src/image/ ");
return f.list();
}


}

然后full_frame 和player_frame 都可以继承于BaseFrame
另外,你的代码没有注释,同时命名规范不标准 类应该这样定义 FullFrame PlayerFrame 才标准

[解决办法]
静态变量
或者将一个窗体作为参数传入另一窗体.
[解决办法]
代码好长,没时间看啊。
帮你顶上去吧。
[解决办法]
up
[解决办法]
UP
------解决方案--------------------


UP
[解决办法]
不会呀帮顶
[解决办法]
不会,帮你顶,记得给分啊 !
[解决办法]
GUI没弄过,纯顶~~
[解决办法]
我顶!我顶!我顶顶顶!

热点排行