为什么需要setLayout转换为(LayoutManager)?

时间:2014-03-31 14:53:49

标签: java swing layout-manager flowlayout

我正在学习在GUI中定位对象的不同方法,但我并不真正理解为什么必须强制转换为LayoutManager才能使用setLayout方法。 是否有必要实现LayoutManager接口才能正常工作?

public class FlowL extends JApplet{

   public void init(){

         // why is the cast necessary ?  
        // an error occurs when  its   setLayout(new FlowLayout());    
        setLayout((LayoutManager) new FlowLayout());


 }

}

1 个答案:

答案 0 :(得分:2)

  

"即使错误消失,我也会收到错误。java.lang.ClassCastExceptionflowLayout.FlowLayout无法投放到java.awt.LayoutManager"

没有标准的Java类flowLayout.FlowLayout。那个你的类(或者可能是一些不会扩展LayoutManager的第三方类,我非常怀疑)。

您需要导入

import java.awt.FlowLayout;

摆脱你的

import flowLayout.FlowLayout; // if you have that.

  • 需要学习的课程:不要将您的类命名为与现有Java类相同。