慕標(biāo)琳琳
2022-10-08 15:11:42
The method setLayout(LayoutManager) in the type Container is not applicable
2 回答

catspeake
TA貢獻(xiàn)1111條經(jīng)驗(yàn) 獲得超0個(gè)贊
你的類名FlowLayout與類庫(kù)中的類名FlowLayout沖突了,程序在setLayout時(shí)不知用哪個(gè),就用了你定義的FlowLayout類,所以出錯(cuò).
改正方法是把你定義的類的類名改成MyFlowLayout,構(gòu)造函數(shù)改成public MyFlowLayout(),注意你的Java代碼的文件名也要改成MyFlowLayout.java以與你的類名匹配.
完整的Java程序如下(改動(dòng)的地方見注釋)
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構(gòu)造函數(shù)改成MyFlowLayout構(gòu)造函數(shù) Frame jFrame= new Frame(); jFrame.setSize( 400 , 300 ); jFrame.setLocation( 20 , 20 ); //這里把Frame位置放上面一點(diǎn),把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類 } } |

ibeautiful
TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊
JFrame默認(rèn)的布局管理器是BorderLayout,你在往JFrame中添加面板的時(shí)候,如果不指定方向,會(huì)默認(rèn)往Center中添加,這就顯示的和你期望的有出入。
兩種修改方式:1. 將JFrame的布局管理器修改為FlowLayout,再將控件的長(zhǎng)度和寬度進(jìn)行修改。2. 將add(p1)與add(p2)調(diào)換位置。
添加回答
舉報(bào)
0/150
提交
取消