jui*_*0xk 3 java swing textfield joptionpane gridbaglayout
我正在创建一个简单的选项窗格,要求多个用户输入.我已经指定了标签和文本字段,但是在我的选项窗格的末尾,有一个不属于任何变量的文本字段,因此我猜测它在指定选项窗格时出现.
这是我的代码:
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);
Run Code Online (Sandbox Code Playgroud)
我的对话框看起来像这样,你可以看到我的窗格底部有一个迷路文本字段:
我的问题是,在我的代码中,我会秘密指定这个吗?我不认为我是,所以我该如何摆脱这个我不需要的流浪文本字段.
谢谢.
解决方案很简单:不要使用JOptionPane.showInputDialog(...).而是使用JOptionPane.showMessageDialog(...).
showInputDialog用于从用户获取单个String输入,因此它的结构是为此目的显示嵌入的JTextField,并返回输入到该字段中的String,即您未使用的String.
另一方面,showMessageDialog不会这样做,而是根据按下了哪个按钮返回一个int.
有关详细信息,请查看JOptionPane API.
编辑:我错了.JOptionPane.showConfirmDialog(...)如果您希望对话框提供对话框处理按钮,请使用a ,例如"确定","取消"或"是"和"否",并允许用户按下这些按钮,然后从按钮获取输入.
例如:
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);
}
Run Code Online (Sandbox Code Playgroud)
显示:
| 归档时间: |
|
| 查看次数: |
733 次 |
| 最近记录: |