gpt4 book ai didi

java - 使用netbeans根据数据库添加jpanel的动态

转载 作者:行者123 更新时间:2023-12-01 12:32:39 35 4
gpt4 key购买 nike

我正在开发一个应用程序,只要数据库中的某个表上有一行,我就需要将 jpanel 添加到 jframe 中。问题是我用 netbeans 制作了我想要的接口(interface),但它看起来像是静态的,我找不到在代码中使用 while 循环的位置。这是代码:我要动态添加的 jpanel 称为 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();

所需输出的图像:

enter image description here

最佳答案

问题:GroupLayout 布局管理器(我相信 NetBeans 代码生成将其用作其默认布局)相当严格,并且不容易接受在运行时添加新组件。

解决方案:不要让您的接收容器使用 GroupLayout,而是让它使用一种更灵活的布局,允许添加其他组件,例如 GridLayout 或 BoxLayout。请注意,您可以告诉 NetBeans GUI 构建器,这是您希望容器之一使用的布局。

顺便说一句,我想知道您是否真正想做的是向 JTable 添加一行。

<小时/>

编辑
关于您的评论:

i didn't want to use JTable, it's like a formular (i wanted to add an image of it but they didn't let me) but how do i tell netbeans that i want to use GridLayout or BoxLayout rather than GroupLayout?

我不使用 NetBeans 或代码生成,但是如果您向 GUI 添加一个 JPanel(需要一个 JPanel 来容纳其他组件),我相信如果您右键单击该 JPanel,您将有能力更改其属性,包括其布局管理器的属性。 NetBeans 还允许您通过其他方式更改它所创建的组件的属性,因此您需要研究一下。

关于java - 使用netbeans根据数据库添加jpanel的动态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25823511/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com