gpt4 book ai didi

java - 如何摆脱 JOptionPane.showInputDialog 中的默认文本字段?

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:05:36 26 4
gpt4 key购买 nike

我正在创建一个简单的选项 Pane ,要求多个用户输入。我已经指定了标签和文本字段,但在选项 Pane 的末尾有一个不属于任何变量的文本字段,所以我猜它是在指定选项 Pane 时出现的。

这是我的代码:

    JTextField locationField = new JTextField(10);
JTextField usedByField = new JTextField(5);
JTextField commentField = new JTextField(50);

...

myPanel.add(new JLabel("Location: ");
myPanel.add(locationField);

myPanel.add(new JLabel("Used By: ");
myPanel.add(usedByField);

myPanel.add(new JLabel("Comments: ");
myPanel.add(commentField);

...

JOptionPane.showInputDialog(myPanel);

我的对话框最终看起来像这样,正如您所看到的,我的 Pane 底部有一个杂散的文本字段:

enter image description here

我的问题是,我会在我的代码中的什么地方 secret 指定它?我不认为我是,那么我该怎么做才能摆脱这个我不需要的杂散文本字段。

谢谢。

最佳答案

解决方案很简单:不要使用 JOptionPane.showInputDialog(...)。而是使用 JOptionPane.showMessageDialog(...)

构建 showInputDialog 是为了从用户那里获取单个字符串输入,因此它的结构是为了显示一个嵌入的 JTextField,并返回输入到该字段中的字符串,一个您没有使用的字符串。

另一方面,showMessageDialog 不会执行此操作,而是根据按下哪个按钮返回一个 int。

请看JOptionPane API有关更多信息。

编辑:我错了。如果您希望对话框提供对话框处理按钮,例如“确定”、“取消”或"is"和“否”,并允许用户按下这些按钮,然后从按钮获得输入。

例如:

final JTextField userNameField = new JTextField(10);
final JPasswordField passwordField = new JPasswordField(10);
JPanel pane = new JPanel(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0,
GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,
new Insets(2, 2, 2, 2), 0, 0);
pane.add(new JLabel("User Name:"), gbc);

gbc.gridy = 1;
pane.add(new JLabel("Password:"), gbc);

gbc.gridx = 1;
gbc.gridy = 0;
gbc.anchor = GridBagConstraints.EAST;
pane.add(userNameField, gbc);

gbc.gridy = 1;
pane.add(passwordField, gbc);

int reply = JOptionPane.showConfirmDialog(null, pane, "Please Log-In",
JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
if (reply == JOptionPane.OK_OPTION) {
// get user input
String userName = userNameField.getText();

// ****** WARNING ******
// ** The line below is unsafe code and makes a password potentially discoverable
String password = new String(passwordField.getPassword());

System.out.println("user name: " + userName);
System.out.println("passowrd: " + password);
}

显示:

enter image description here

关于java - 如何摆脱 JOptionPane.showInputDialog 中的默认文本字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40818775/

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