为了账号安全,请及时绑定邮箱和手机立即绑定

为什么会报下面这种错,求解?

为什么会报下面这种错,求解?

慕标琳琳 2022-10-08 15:11:42
The method setLayout(LayoutManager) in the type Container is not applicable
查看完整描述

2 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

你的类名FlowLayout与类库中的类名FlowLayout冲突了,程序在setLayout时不知用哪个,就用了你定义的FlowLayout类,所以出错.

改正方法是把你定义的类的类名改成MyFlowLayout,构造函数改成public MyFlowLayout(),注意你的Java代码的文件名也要改成MyFlowLayout.java以与你的类名匹配.

完整的Java程序如下(改动的地方见注释)

MyFlowLayout.java


import java.awt.Frame; import java.awt.FlowLayout;//这里引入FlowLayout类 import java.awt.Button;    //这里引入Button类 //import java.awt.LayoutManager;//这里去掉这句 //import javax.swing.JFrame;//这里去掉这句 public class MyFlowLayout{ //这里把FlowLayout类改成MyFlowLayout类  public MyFlowLayout(){ //这里把FlowLayout构造函数改成MyFlowLayout构造函数   Frame jFrame=new Frame();   jFrame.setSize(400,300);   jFrame.setLocation(20,20);//这里把Frame位置放上面一点,把200改成20   jFrame.setBackground(Color.LIGHT_GRAY);   jFrame.setLayout(new FlowLayout());   for(int i=0;i<=7;i++){    jFrame.add(new Button("按钮"));   }   jFrame.setVisible(true);  }  public static void main(String[] args){   new MyFlowLayout();//这里把FlowLayout类改成MyFlowLayout类  } }



查看完整回答
反对 回复 2022-10-12
?
ibeautiful

TA贡献1993条经验 获得超6个赞

JFrame默认的布局管理器是BorderLayout,你在往JFrame中添加面板的时候,如果不指定方向,会默认往Center中添加,这就显示的和你期望的有出入。
两种修改方式:1. 将JFrame的布局管理器修改为FlowLayout,再将控件的长度和宽度进行修改。2. 将add(p1)与add(p2)调换位置。

查看完整回答
反对 回复 2022-10-12
  • 2 回答
  • 0 关注
  • 214 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号