gpt4 book ai didi

java - 在对话框中单击“确定”时获取 Jtextfields 的值

转载 作者:行者123 更新时间:2023-11-30 10:38:53 31 4
gpt4 key购买 nike

我的需要是在 JDialog(confirmDialog 或 inputDialog)中显示一个选项卡。该选项卡每行包含 2 个 JTextField。显示效果很好:

enter image description here

但我不知道如何获取 JTextFields 的值。

显示代码如下:

int size = model.getCheckedApplications().size();
// une ligne par application sélectionnée
layout = new GridLayout(size + 1, 3, 5, 5);
myPanel = new JPanel(layout);
myPanel.add(new JLabel("Application"));
myPanel.add(new JLabel("Version cadre"));
myPanel.add(new JLabel("Nouvelles natures"));
for (Application app : model.getCheckedApplications()) {
myPanel.add(new JLabel(app.getCode88()));
JTextField versionActuelleField = new JTextField(30);
versionActuelleField.setName("versionActuelle"
+ app.getCode88());
versionActuelleField.setText(app
.getVersionCadreActuelle());

JTextField nouvellesNaturesField = new JTextField(
30);
nouvellesNaturesField.setName("nouvellesNatures"
+ app.getCode88());

myPanel.add(versionActuelleField);
myPanel.add(nouvellesNaturesField);
}
result = JOptionPane.showConfirmDialog(null, myPanel,
"Valeurs de cette version",
JOptionPane.OK_CANCEL_OPTION);

然后我不知道如何在用户单击确定按钮时获取值:

if (result == 0) { // The user clicks on the ok button

最佳答案

您需要将它们添加到您存储的某个列表中,以便您可以再次访问它们。由于您是在引用应用程序时添加它们,因此我建议使用 Map

private Map<Application, JTextField> nouvellesNaturesFields = new ArrayListMultimap<Application, JTextField>(); //Or Hashmap, if the key is unique
private Map<Application, JTextField> versionActuelleFields = new ArrayListMultiMap<Application, JTextField>();

public List<JTextField> getNouvellesNaturesFields() {
return nouvellesNaturesFields ;
}

public List<JTextField> getVersionActuelleFields () {
return versionActuelleFields ;
}
//class code

for (Application app : model.getCheckedApplications()) {
//Other code
JTextField nouvellesNaturesField = new JTextField(
30);
nouvellesNaturesField.setName("nouvellesNatures"
+ app.getCode88());
nouvellesNaturesFields.put(app, nouvellesNaturesField);

//Other code and same for your new nature fields
}
result = JOptionPane.showConfirmDialog(null, myPanel,
"Valeurs de cette version",
JOptionPane.OK_CANCEL_OPTION);

然后,当用户单击确认按钮时,使用属性访问器 getNouvellesNaturesFields()getVersionActuelleFields() 您可以迭代创建的所有字段,如下所示:

for (Map.Entry<Application, JTextField> entry: myMap.entries()) {
//Do something here
}

或者您也可以通过以下方式获取它们:

for (Application app : model.getCheckedApplications()) {
List<JTextField> data = myMap.get(app);
for(JTextField field : data) {
field.getText();
}
}

因为键值可能不是唯一的,所以我使用了 ArrayListMultiMap , 但如果它是唯一的,那么 HashMap应该够了

关于java - 在对话框中单击“确定”时获取 Jtextfields 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39511609/

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