我目前正在为学校项目开发国际象棋游戏。当您提升棋子时,它会打开一个对话框,允许玩家选择他们想要提升到的棋子。但是,当玩家单击“取消”或“ X”时,该框仅返回null,并且用户无法提升其作品。我想知道是否可以删除/禁用取消按钮和“ X”按钮。这是我的代码:
private String createDialog() {
hideLabels();
Object[] options = {"Queen", "Knight", "Bishop", "Rook"};
String selection = (String)JOptionPane.showInputDialog(frame, "What would you like to promote to?, ", "Promote", JOptionPane.PLAIN_MESSAGE, null, options, options[0]);
return selection;
}
答案 0 :(得分:0)
您可以创建自己的自定义JDialog并将自己的组件和按钮添加到对话框中,而不必使用JOptionPane,它不能使您对功能进行太多控制。
您无法删除关闭按钮,但是可以通过添加以下内容来阻止关闭按钮执行任何操作:
dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
或者,如果您真的要使用JOptionPane,则请查阅Stopping a Dialog From Closing上Swing教程中的部分,该部分显示了如何检查以确保输入了有效值。