JOptionPane.showInput
时间: 2024-01-02 09:04:03 浏览: 32
JOptionPane.showInput 是 Java Swing 中的一个方法,用于显示一个带有输入框的对话框,让用户输入信息并返回用户输入的内容。它的语法如下:
```
public static String showInputDialog(Component parentComponent, Object message)
```
其中,parentComponent 是对话框的父组件,message 是要显示的提示信息。调用该方法后,会弹出一个对话框,其中包含一个输入框和一个确定按钮和一个取消按钮,用户可以在输入框中输入信息,并点击“确定”按钮提交信息,或者点击“取消”按钮取消操作。如果用户点击“确定”按钮,则该方法会返回用户输入的信息,如果用户点击“取消”按钮,则该方法会返回 null。
相关问题
void close(){ try { int option = JOptionPane.showConfirmDialog(null,"是否保存", "记事本提示",JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE,null); switch (option) { case JOptionPane.YES_OPTION:saveFile();System.exit(0);break; case JOptionPane.NO_OPTION:System.exit(0);break; case JOptionPane .CANCEL_OPTION:return;} } catch (Exception e) { e.printStackTrace(); } }
这是一个 Java 语言的方法,其目的是关闭程序并询问用户是否需要保存文件。具体解释如下:
1. `void` 表示该方法不返回任何值。
2. `close()` 是该方法的名称。
3. `try` 表示该方法中包含可能会抛出异常的代码块,需要进行异常处理。
4. `int option = JOptionPane.showConfirmDialog(null,"是否保存", "记事本提示",JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE,null);` 是一个弹出对话框,询问用户是否需要保存文件。其中参数含义如下:
- `null` 表示对话框的父窗口为 null,即居中显示。
- `"是否保存"` 是对话框的标题。
- `"记事本提示"` 是对话框的消息内容。
- `JOptionPane.YES_NO_CANCEL_OPTION` 表示对话框中有“是”、“否”、“取消”三个按钮。
- `JOptionPane.WARNING_MESSAGE` 表示对话框的图标为警告图标。
- `null` 表示对话框的选项不需要自定义。
5. `switch (option) { case JOptionPane.YES_OPTION:saveFile();System.exit(0);break; case JOptionPane.NO_OPTION:System.exit(0);break; case JOptionPane.CANCEL_OPTION:return;}` 是根据用户选择的不同,执行不同的操作。其中:
- `JOptionPane.YES_OPTION` 表示用户选择了“是”。
- `saveFile()` 是保存文件的方法。
- `System.exit(0)` 表示正常退出程序。
- `JOptionPane.NO_OPTION` 表示用户选择了“否”。
- `JOptionPane.CANCEL_OPTION` 表示用户选择了“取消”。
- `return` 表示退出该方法,但不退出程序。
6. `catch (Exception e) { e.printStackTrace(); }` 表示如果有异常发生,则打印异常信息。
Surrender.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub int j=JOptionPane.showConfirmDialog(null, "是否投降","是",JOptionPane.YES_OPTION,JOptionPane.QUESTION_MESSAGE); if(j==JOptionPane.YES_OPTION){ boolean isBlack = false; if(isBlack==true){ JOptionPane.showMessageDialog(null, "黑方胜利"); } else { JOptionPane.showMessageDialog(null, "红方胜利"); } } showConfirmDialog(null, "是否开始下一局","是",JOptionPane.YES_OPTION,JOptionPane.QUESTION_MESSAGE); if(j==JOptionPane.YES_OPTION){ c.initMap(); c.repaint();//新游戏后,出棋先后顺序互换 c.select_c = -1; c.select_r = -1; c.isBlack=!c.isBlack; //System.out.println("点击\n"); } else{ System.exit(0); } } });这段java代码怎么改
这段 Java 代码的主要问题是在 `showConfirmDialog` 方法前面没有加上 `JOptionPane.` 前缀,应该改为 `JOptionPane.showConfirmDialog`。
此外,在 `if(j==JOptionPane.YES_OPTION)` 的代码块中,变量 `isBlack` 被设置为了 `false`,然后又用 `if(isBlack==true)` 进行了判断,这里的判断实际上永远不会成立,应该将变量 `isBlack` 的值根据当前的情况进行设定。
最后,在弹出确认对话框后,应该将用户的选择结果保存到变量 `j` 中,然后根据 `j` 的值来进行下一步操作。修改后的代码如下:
```
Surrender.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int j = JOptionPane.showConfirmDialog(null, "是否投降", "投降", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (j == JOptionPane.YES_OPTION) {
boolean isBlack = c.isBlack();
if (isBlack) {
JOptionPane.showMessageDialog(null, "黑方胜利");
} else {
JOptionPane.showMessageDialog(null, "红方胜利");
}
}
j = JOptionPane.showConfirmDialog(null, "是否开始下一局", "下一局", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (j == JOptionPane.YES_OPTION) {
c.initMap();
c.repaint();
c.select_c = -1;
c.select_r = -1;
c.setBlack(!c.isBlack());
} else {
System.exit(0);
}
}
});
```