簡體   English   中英

使用netbeans根據數據庫添加jpanel的動態

[英]add dynamic of jpanel depending on database using netbeans

我正在開發一個應用程序,只要數據庫中某個表上有一行,就需要向jframe中添加jpanel。 問題是我用netbeans制作了我想要的接口,但是它看起來像是靜態的,我找不到在代碼中使用while循環的位置。 這是代碼:我要動態添加的list_ligne.get(i)稱為list_ligne.get(i)

  javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
                    getContentPane().setLayout(layout);
                    layout.setHorizontalGroup(
                        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(layout.createSequentialGroup()
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(layout.createSequentialGroup()
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(idPapier_lb)
                                    .addGap(53, 53, 53)
                                    .addComponent(titre_lb)
                                    .addGap(30, 30, 30)
                                    .addComponent(proprietaire_lb)
                                    .addGap(94, 94, 94)
                                    .addComponent(lien_lb)
                                    .addGap(94, 94, 94)
                                    .addComponent(confidentialite_lb))
                                .addGroup(layout.createSequentialGroup()
                                    .addContainerGap()
                                    .addComponent(list_lignes.get(2), javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                            .addContainerGap())
                            .addGroup(layout.createSequentialGroup()
            .addGap(304, 304, 304)
            .addComponent(ajouter)
            .addGap(85, 85, 85)
            .addComponent(deconnexion)
            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    );
                    layout.setVerticalGroup(
                            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addGap(44, 44, 44)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(idPapier_lb)
                                    .addComponent(titre_lb)
                                    .addComponent(proprietaire_lb)
                                    .addComponent(lien_lb)
                                    .addComponent(confidentialite_lb))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(list_lignes.get(2), javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 99, Short.MAX_VALUE)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                        .addComponent(ajouter)
                                        .addComponent(deconnexion))
                                    .addContainerGap())
                        );
                pack();

所需輸出的圖像:

在此處輸入圖片說明

問題:GroupLayout布局管理器(我相信NetBeans代碼生成將其用作其默認布局)相當僵化,並且在運行時不容易接受添加新組件。

解決方案:不要讓您的接收容器使用GroupLayout,而要使用更靈活的布局之一,該布局允許添加其他組件,例如GridLayout或BoxLayout。 請注意,您可以告訴 NetBeans GUI構建器您希望其中一個容器使用的布局。

順便說一句,我想知道您是否真的想在JTable中添加一行。


編輯
關於您的評論:

我不想使用JTable,就像一個公式編寫器(我想添加它的圖像,但他們沒有讓我),但是我如何告訴Netbeans我想使用GridLayout或BoxLayout而不是GroupLayout?

我不使用NetBeans或代碼生成,但是如果您將一個JPanel添加到GUI中,而該JPanel是容納其他組件所必需的,那么我敢肯定,如果右鍵單擊該JPanel,您將能夠更改其JPanel。屬性,包括其布局管理器的屬性。 NetBeans還可以通過其他方式來更改其正在創建的組件的屬性,因此您需要對此進行研究。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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