从Swing对话框中删除“取消”按钮和“ X”

时间:2018-12-09 01:37:09

标签: java swing dialog

我目前正在为学校项目开发国际象棋游戏。当您提升棋子时,它会打开一个对话框,允许玩家选择他们想要提升到的棋子。但是,当玩家单击“取消”或“ 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;
}

1 个答案:

答案 0 :(得分:0)

您可以创建自己的自定义JDialog并将自己的组件和按钮添加到对话框中,而不必使用JOptionPane,它不能使您对功能进行太多控制。

您无法删除关闭按钮,但是可以通过添加以下内容来阻止关闭按钮执行任何操作:

dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);

或者,如果您真的要使用JOptionPane,则请查阅Stopping a Dialog From Closing上Swing教程中的部分,该部分显示了如何检查以确保输入了有效值。