0

我创建了一个 JOptionPane 作为选择方法。我想要字符串数组中选择 1,2 或 3 的 int 值,以便可以将其用作计数器。如何获取数组的索引并将其设置为等于我的 int 变量loanChoice?

public class SelectLoanChoices {
    int loanChoice = 0;
    String[] choices = {"7 years at 5.35%", "15 years at 5.5%",
            "30 years at 5.75%"};
        String input = (String) javax.swing.JOptionPane.showInputDialog(null, "Select a Loan"
                ,"Mortgage Options",JOptionPane.QUESTION_MESSAGE, null,
                choices,
                choices[0]
                **loanChoice =**);
}
4

2 回答 2

1

JOptionPane.showOptionDialog()如果您希望返回选项的索引,则可以使用。否则,您将不得不遍历选项数组以根据用户选择查找索引。

例如:

public class SelectLoanChoices {
 public static void main(final String[] args) {
  final String[] choices = { "7 years at 5.35%", "15 years at 5.5%", "30 years at 5.75%" };
  final Object choice = JOptionPane.showInputDialog(null, "Select a Loan", "Mortgage Options",
    JOptionPane.QUESTION_MESSAGE, null, choices, choices[0]);
  System.out.println(getChoiceIndex(choice, choices));

 }

 public static int getChoiceIndex(final Object choice, final Object[] choices) {
  if (choice != null) {
   for (int i = 0; i < choices.length; i++) {
    if (choice.equals(choices[i])) {
     return i;
    }
   }
  }
  return -1;
 }
}
于 2010-06-19T06:04:18.130 回答
1

由于 Tim Bender 已经给出了详细的答案,这里有一个简洁的版本。

int loanChoice = -1;
if (input != null) while (choices[++loanChoice] != input);

另外,请注意,它showInputDialog(..)需要一个对象数组,不一定是字符串。如果您有 Loan 对象并实现了它们的toString()方法来表示“X 年在 Y.YY%”,那么您可以提供一个 Loans 数组,然后可能会跳过数组索引并直接跳转到选定的 Loan。

于 2010-06-19T06:18:08.597 回答