java - SpringLayout 的问题
问题描述
我已经写了一些代码,但是当我运行它时,id 并没有像我想要的那样工作:它只显示左上角数组中的最后一个元素
public class AddClient extends JPanel {
String title = "title";
String description = "desc";
SpringLayout layout = new SpringLayout();
String[] label_text = new String[] {"Name", "Surname", "VAT"};
JLabel[] label_left = new JLabel[label_text.length];
JTextField[] field_left = new JTextField[label_text.length];
public AddClient() {
setLayout(layout);
compone();
Main.tab.addTab(title, null, this, description);
}
public void compone() {
for(int i = 0; i < label_text.length; i++) {
label_left[i] = new JLabel(label_text[i]);
if(i == 0)
layout.putConstraint(SpringLayout.NORTH, this, 5, SpringLayout.NORTH, label_left[i]);
else
layout.putConstraint(SpringLayout.SOUTH, label_left[i-1], -5, SpringLayout.NORTH, label_left[i]);
add(label_left[i]);
}
}
}
结果:
如何将所有元素设置为彼此下的一个(如下所示)?
_______________________________________
|Name |
|Surname |
|VAT |
| |
| |
| |
| |
| |
| |
| |
|_______________________________________|
解决方案
解决了!!我不知道为什么,但它只能这样工作(用第二个元素切换第一个元素):
layout.putConstraint(SpringLayout.NORTH, label_left[i], -5, SpringLayout.SOUTH, label_left[i-1]);
代替:
layout.putConstraint(SpringLayout.SOUTH, label_left[i-1], -5, SpringLayout.NORTH, label_left[i]);
推荐阅读
- android - 使用 kotlin 进行 Espresso webview 测试
- c# - WPF 不显示垂直滚动条
- salesforce - 用于标准 API 的 Mulesoft 4 Salesforce 集成
- mysql - SQL 在用户输入值上使用 LIKE
- javascript - 如何在不编辑的情况下使用原始数据文件
- ios - 后台监听 AVAudioSession 路由变化
- flutter - 无法在飞镖中映射项目列表(对象引用)
- node.js - Node.js - EventListener - 仅捕获触发数据事件的套接字的关闭事件
- php - 如何替换 URL 中的 GET 参数
- python - SymPy 的多元最小值