flash文件不会出现

时间:2013-08-26 11:27:47

标签: java swing

我想在我的框架中添加一个flash文件,它工作正常,但是当我使用netbeans制作框架时,flash文件不再起作用,但当我删除“initComponent()”方法时,它可以工作,但我不想删除此方法,为什么这个方法使Flash文件无法正常工作或阻止将其添加到框架?

这是代码:

public class SimpleFlashExample_1 extends JFrame{ 

 public SimpleFlashExample_1() {

   initComponents();

    JFlashPlayer flashPlayer = new JFlashPlayer();
    flashPlayer.load(getClass(), "/clientserver/fl.swf");
    add(flashPlayer, BorderLayout.CENTER);
  }

  private void initComponents() {

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 675, Short.MAX_VALUE)
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 475, Short.MAX_VALUE)
    );

    pack();
}

  public static void main(String[] args) {

    UIUtils.setPreferredLookAndFeel();
    NativeInterface.open();

    SwingUtilities.invokeLater(new Runnable() {
            @Override
      public void run() {

        new SimpleFlashExample_1().setVisible(true);
    }
   });
    NativeInterface.runEventPump();
  }

}

1 个答案:

答案 0 :(得分:1)

花点时间阅读代码......

public SimpleFlashExample_1() {
    // 1...
    initComponents();
    JFlashPlayer flashPlayer = new JFlashPlayer();
    flashPlayer.load(getClass(), "/clientserver/fl.swf");
    // 3...
    add(flashPlayer, BorderLayout.CENTER);
}

private void initComponents() {
    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    // 2....
    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 675, Short.MAX_VALUE)
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 475, Short.MAX_VALUE)
    );

    pack();
}

首先,您致电initComponentsinitComponents调用getContentPane().setLayout(layout);,指定GroupLayout作为框架的布局管理器。然后,您将Flash播放器添加到帧中,尝试使用BorderLayout约束,该约束与GroupLayout不兼容(并且显然被忽略)

为什么你的组件实际上没有表现出任何数量的因素,我猜测flash播放器要么没有首选大小,要么GroupLayout,不知道还有什么用呢,忽略了组件

尝试在表单设计器

中将框架的布局设置为BorderLayout