[英]Adding Layout Manager to JPanel and JFrame
我正在嘗試向框架添加按鈕,這有兩種方法。
更改JPanel
的布局,然后將按鈕直接添加到面板。 (下面的代碼中的注釋部分)。 然后,我將面板添加到框架中。 這種方法有效,並且在JFrame
顯示按鈕。
創建一個BorderLayout
,使用addLayoutComponents()
方法添加按鈕。 然后將此bl
( BorderLayout
參考)添加到面板中,然后添加JFrame。 為什么這種方法沒有在框架中顯示按鈕? 我哪里做錯了?
誰能幫助我學習AWT組件? 我的意思是首先閱讀什么和概念序列。
jf = new JFrame();
jp= new JPanel(new BorderLayout());
/*jp.add(new JButton("North"), BorderLayout.NORTH);
jp.add(new JButton("South"), BorderLayout.SOUTH);
jp.add(new JButton("East"), BorderLayout.EAST);
jp.add(new JButton("West"), BorderLayout.WEST);
jp.add(new JButton("Center"), BorderLayout.CENTER);
jf.add(jp);
*/
BorderLayout bl = new BorderLayout();
bl.addLayoutComponent(new JButton("North"), BorderLayout.NORTH);
bl.addLayoutComponent(new JButton("South"), BorderLayout.SOUTH);
bl.addLayoutComponent(new JButton("East"), BorderLayout.EAST);
bl.addLayoutComponent(new JButton("West"), BorderLayout.WEST);
bl.addLayoutComponent(new JButton("Center"), BorderLayout.CENTER);
jp.setLayout(bl);
jf.add(jp);
第二種方法不起作用,因為它是錯誤的。 您不應該將組件直接添加到布局管理器中,而應該添加到使用布局管理器的容器中,如此處的布局管理器教程中概述的那樣: 布局管理器教程 。 根據BorderLayout API,編碼人員不應直接調用addLayoutComponent
方法,而應在將組件添加到容器時由容器本身間接調用。 該方法將組件添加到布局中, 但不添加到容器本身 ,這是一個關鍵的區別。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.