簡體   English   中英

將布局管理器添加到JPanel和JFrame

[英]Adding Layout Manager to JPanel and JFrame

我正在嘗試向框架添加按鈕,這有兩種方法。

  1. 更改JPanel的布局,然后將按鈕直接添加到面板。 (下面的代碼中的注釋部分)。 然后,我將面板添加到框架中。 這種方法有效,並且在JFrame顯示按鈕。

  2. 創建一個BorderLayout ,使用addLayoutComponents()方法添加按鈕。 然后將此blBorderLayout參考)添加到面板中,然后添加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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM