【发布时间】:2014-01-16 16:02:47
【问题描述】:
我的问题与这个问题相反:Is there a way to only have the OK button in a JOptionPane showInputDialog (and no CANCEL button)?
一个解决方案是(如果我没看错的话)添加一个任意的 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 个动作(或与此问题无关的任何其他内容)。
【问题讨论】:
-
只需制作一个自定义模型 JDialog。这并不难。然后你可以随心所欲地自定义它
标签: java swing jcombobox joptionpane cancel-button