繁体   English   中英

在我的JOptionPane中添加一个取消按钮

[英]Adding a cancel button to my JOptionPane

我的问题与这一问题相反: 是否有办法在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个动作(或与此问题无关的其他任何内容)。

您正在使用showMessageDialog()方法,该方法仅显示以下内容:一条消息。 它没有取消选项。 为此,请使用其他方法之一。

实际上,最后一个参数甚至无效。 它不是在寻找您提供的选项类型,而是在寻找消息类型(ERROR_MESSAGE,INFORMATION_MESSAGE,WARNING_MESSAGE,QUESTION_MESSAGE或PLAIN_MESSAGE)。

与往常一样,API是您最好的朋友: http : //docs.oracle.com/javase/7/docs/api/javax/swing/JOptionPane.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM