【发布时间】:2014-03-31 14:53:48
【问题描述】:
我正在学习在 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());
}
}
【问题讨论】:
-
你在同一个包中是否有另一个你定义为
FlowLayout(作为练习或其他东西)的类? -
不,FlowLayout 不是已经定义了吗?我所做的就是开始添加对象?例如:
setLayout(new FlowLayout());add(new Button("myButton")); -
“定义”,意思是“命名”。我看到您将 this 类命名为
FlowL,所以这就是我问的原因。也许您创建了另一个名为FlowLayout的类。如果你这样做了,那是你的问题。否则我想不出其他原因。 -
即使错误消失了我也得到了一个错误..
java.lang.ClassCastException: flowLayout.FlowLayout cannot be cast to java.awt.LayoutManager -
mm 好的,不只是这个类..
标签: java swing layout-manager flowlayout