如何解决使用 Java Swing GroupLayout 从 SQL 数据库创建数据表
我有一个项目,我想使用 GroupLayout 将 sql 数据库的值映射到 JPanel。我无法弄清楚为什么我的代码会做它所做的事情。以下是我针对特定类的代码:
import javax.swing.*;
import java.awt.*;
public class databaseScreen extends JPanel{
private controller controller;
private calculator calculator = new calculator();
private createDB createDB = new createDB();
JLabel pid = new JLabel();
JLabel panelName = new JLabel();
JLabel panelEff = new JLabel();
JLabel lastUpdated = new JLabel();
JLabel source = new JLabel();
public databaseScreen(controller controller){
this.controller=controller;
databaseParameters();
}
private void databaseParameters(){
GroupLayout layout = new GroupLayout(this);
this.setLayout(layout);
layout.setautocreateGaps(true);
layout.setautocreateContainerGaps(true);
GroupLayout.ParallelGroup pidGroupH = layout.createParallelGroup(GroupLayout.Alignment.CENTER);
GroupLayout.ParallelGroup nameGroupH = layout.createParallelGroup(GroupLayout.Alignment.CENTER);
GroupLayout.ParallelGroup effGroupH = layout.createParallelGroup(GroupLayout.Alignment.CENTER);
GroupLayout.ParallelGroup updGroupH = layout.createParallelGroup(GroupLayout.Alignment.CENTER);
GroupLayout.ParallelGroup sourceGroupH = layout.createParallelGroup(GroupLayout.Alignment.CENTER);
for(int j=0;j<createDB.getTableSize();j++){
pid.setText(String.valueOf(createDB.getPid(j)));
panelName.setText(createDB.getPanelName(j));
panelEff.setText(String.valueOf(createDB.getPanelEff(j)));
lastUpdated.setText(createDB.getLastUpdated(j));
source.setText(createDB.getSource(j));
pidGroupH.addComponent(pid);
nameGroupH.addComponent(panelName);
effGroupH.addComponent(panelEff);
updGroupH.addComponent(lastUpdated);
sourceGroupH.addComponent(source);
}
layout.setHorizontalGroup(
layout.createSequentialGroup()
.addGroup(pidGroupH)
.addGroup(nameGroupH)
.addGroup(effGroupH)
.addGroup(updGroupH)
.addGroup(sourceGroupH)
);
GroupLayout.SequentialGroup verticalGroups = layout.createSequentialGroup();
for(int j=0;j<createDB.getTableSize();j++){
pid.setText(String.valueOf(createDB.getPid(j)));
panelName.setText(createDB.getPanelName(j));
panelEff.setText(String.valueOf(createDB.getPanelEff(j)));
lastUpdated.setText(createDB.getLastUpdated(j));
source.setText(createDB.getSource(j));
verticalGroups
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(pid)
.addComponent(panelName)
.addComponent(panelEff)
.addComponent(lastUpdated)
.addComponent(source))
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addGap(20,20,20)
);
}
layout.setVerticalGroup(
verticalGroups
);
}
}
get(variable) 函数正确接收基于因子 j 的值,我通过创建一个 main 并通过相同的 for 循环打印它们的值来测试它。但是,在屏幕上显示结果时,尽管结果位于布局的 VerticalGroup 中的不同 ParallelGroup 中,但结果似乎彼此堆叠。这是屏幕外观的屏幕截图:
任何建议将不胜感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。