我的问题是这个问题的反面:有没有办法在 JOptionPane showInputDialog 中只有 OK 按钮(并且没有 CANCEL 按钮)?
一个解决方案是(如果我没看错的话)添加一个任意的 JPanel,在这种情况下是一个标签。我的问题是我在消息窗口中需要一个 JComboBox 对象,并且(以与解决 Coffee_Table 的问题相同的方式)拥有 JComboBox 似乎删除了取消按钮。我是否将 YES_NO_CANCEL_OPTION 替换为 OK_CANCEL_OPTION 或 QUESTION_MESSAGE 都没关系。
我仍处于学习 JOptionPane 系列的无意识复制阶段,所以我认为解决方案是显而易见的,我只是不知道,因为我没有看到任何无意识复制的具体示例。(这也意味着一旦我学会了如何添加一个取消按钮,我就需要研究如何访问用户是否点击它。编辑:我半信半疑我会怎么做,所以你不要如果您不想回答,则无需回答。)
public static void main(String[] args) {
int numCh1 = 1;
String[] moves = {"rock","paper","scissors"};
JComboBox<?> optionList = new JComboBox<Object>(moves);
JOptionPane.showMessageDialog(
null,
optionList,
"Player One: Choose a Move",
JOptionPane.YES_NO_CANCEL_OPTION
);
numCh1 = optionList.getSelectedIndex();
System.out.println(moves[numCh1]);
}
注意:组合框是不可协商的(与三个按钮相反),因为我的实际项目是模拟rps101;我只是认为您不需要查看所有 100 个动作(或与此问题无关的任何其他内容)。