NetBeans 手動添加組件

來源:互聯網
上載者:User

re:

要求:一個JButton,一個JPanel,當我們點擊JButton時,JPanel裡添加一個JButton或者其他組件。
自己使用純程式碼寫的時候,在JButton的MousePressed()函數裡,使用JPanel的add()函數添加組件,最後使用validate()使得JPanel更新後的布局有效,可以實現。
但是,使用netBeans製作介面,然後在JButton的MousePressed()函數內,使用同樣的方法,JPanel裡無法出現JButton。。。不知什麼錯誤。。。
望高手解答!!!

-----------------------------------------------------------------------------------------------------------------------------------------------------

本人也遇到此問題,  後經分析發現了原因以及解決方案:

-->原因:   netBeans自動產生代碼時, 將容器的布局管理器設定為GroupLayout, 可在

netBeans自動產生的函數 initComponents()中看到此代碼:

......

javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);

mainPanel.setLayout(mainPanelLayout);

.......

 

這導致手動添加

代碼: "mainPanel.add(new JButton("test"));"  後, mainPanel的視圖並沒有任何變化,  組件未添加進去! 

 

-->解決方案: 將mainPane容器l的布局管理器重新設定為JPanel的預設布局管理器: BorderLayout

......

initComponents();

mainPanel.setLayout(new BorderLayout()); //重新設定mainPanel的布局管理器

mainPanel.add(jPanel1, BorderLayout.SOUTH); // okey! 可以看到效果了

......

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.