[英]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.