gpt4 book ai didi

java - 如何在 Java 代码中制作输入表单(不是使用 JForm 的 Netbeans)?

转载 作者:太空狗 更新时间:2023-10-29 22:45:12 28 4
gpt4 key购买 nike

我想用 Java 制作一个输入表单,以便用户可以输入详细信息。

像这样:

desired form


我的代码

import java.awt.GridLayout;
import javax.swing.*;

class JOptionPaneTest {

public static void main(String[] args) {
String[] items = {"One", "Two", "Three", "Four", "Five"};
JComboBox combo = new JComboBox(items);
JTextField field1 = new JTextField("1234.56");
JTextField field2 = new JTextField("9876.54");
JPanel panel = new JPanel(new GridLayout(0, 1));
panel.add(combo);
panel.add(new JLabel("Field 1:"));
panel.add(field1);
panel.add(new JLabel("Field 2:"));
panel.add(field2);
int result = JOptionPane.showConfirmDialog(null, panel, "Test",
JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
if (result == JOptionPane.OK_OPTION) {
System.out.println(combo.getSelectedItem()
+ " " + field1.getText()
+ " " + field2.getText());
} else {
System.out.println("Cancelled");
}
}
}

我的输出形式:

current state of form

我认为我必须将布局更改为类似BorderLayout 的布局。任何想法如何在问题的顶部获得表单的外观?

最佳答案

是的,您必须更改布局。看看SpringLayout这个例子:

alt text
(来源:sun.com)

String[] labels = {"Name: ", "Fax: ", "Email: ", "Address: "};
int numPairs = labels.length;

//Create and populate the panel.
JPanel p = new JPanel(new SpringLayout());
for (int i = 0; i < numPairs; i++) {
JLabel l = new JLabel(labels[i], JLabel.TRAILING);
p.add(l);
JTextField textField = new JTextField(10);
l.setLabelFor(textField);
p.add(textField);
}

//Lay out the panel.
SpringUtilities.makeCompactGrid(p,
numPairs, 2, //rows, cols
6, 6, //initX, initY
6, 6); //xPad, yPad

SpringLayout 可以很好地处理这个简单的表单,但第三方库具有更多功能。 IE。 MiG Layout .

关于java - 如何在 Java 代码中制作输入表单(不是使用 JForm 的 Netbeans)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3180535/

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