2014-03-31 32 views
0

我正在學習在GUI中定位對象的不同方法,我不太明白爲什麼必須將其投射到LayoutManager才能使用setLayout方法。 是否需要實現LayoutManager接口才能正常工作?爲什麼要投影到(LayoutManager)需要setLayout?

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

您是否在同一個包中定義了另一個類作爲FlowLayout(如練習或其他)? –

+0

不,是不是FlowLayout已經定義好了?我所做的就是開始添加對象?例如: 'setLayout(new FlowLayout());' 'add(new Button(「myButton」));' – user3363537

+1

_「defined」_,meaning _「named」_。我看到你名爲_this_ class'FlowL',所以我就問這個問題。也許你創建了另一個叫做FlowLayout的類。如果你這樣做,那是你的問題。否則,我想不出另一個原因。 –

回答

2

「和即使錯誤在前看不見我得到一個錯誤.. java.lang.ClassCastExceptionflowLayout.FlowLayout不能轉換到java.awt.LayoutManager

沒有標準的Java類flowLayout.FlowLayout。這是你的類(或可能是一些不擴展LayoutManager的第三方類,我非常懷疑)。

您需要導入

import java.awt.FlowLayout; 

,擺脫你的

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

  • 課要學習:不要名字你的類一樣現有的Java類。