需要有关此计划的帮助。我所做的一切似乎都不起作用,即使我没有任何错误,它也只是向我显示了同样的事情。 cheg上的人给我发了他们对代码的修改,他们仍然没有工作。
您将前往世界各地旅行,需要一个程序来帮助确定其他国家/地区的成本是多少美元。您计划访问加拿大,欧洲,日本,澳大利亚,印度和墨西哥的几个国家/地区,因此您的计划必须适用于这些国家/地区的货币。 CurrencyConverter.java和RatePanel.java文件包含执行此转换的程序框架。完成如下: CurrencyPanel目前只包含两个组件 - 标题的JLabel和显示计算结果的JLabel。它还包含两个并行数组 - 一个是货币名称数组(一个字符串数组),另一个是相应汇率的数组(以美元计算的一个货币单位的值)。编译并运行程序以查看它的外观(不多!!)。 添加组合框以允许用户选择货币。构造函数的参数应该是货币名称的数组。请注意,第一个货币名称实际上是对用户的指令,因此不需要另外的标签。 在ComboListener中修改actionPerformed,以便将index设置为所选项的索引。 测试你到目前为止所拥有的。它应该显示给定货币的一个单位是美元。 现在添加一个文本字段(和标签),以便用户可以输入所选货币的项目成本。您需要更新ComboListener,以便它从文本字段中获取此值并计算并显示等值的美元金额。 测试你的程序。 修改布局以创建更具吸引力的GUI(建议:使用框布局)。
// ******************************************************************
// RatePanel.java
//
// Panel for a program that converts different currencies to
// U.S. Dollars
// ******************************************************************
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class RatePanel extends JPanel
{
private JComboBox currencyCombo;
private double[] rate; // exchange rates
private String[] currencyName;
private JLabel result;
// ------------------------------------------------------------
// Sets up a panel to convert cost from one of 6 currencies
// into U.S. Dollars. The panel contains a heading, a text
// field for the cost of the item, a combo box for selecting
// the currency, and a label to display the result.
// ------------------------------------------------------------
public RatePanel ()
{
JLabel title = new JLabel ("How much is that in dollars?");
title.setAlignmentX (Component.CENTER_ALIGNMENT);
title.setFont (new Font ("Helvetica", Font.BOLD, 20));
// Set up the arrays for the currency conversions
currencyName = new String[] {"Select the currency..",
"European Euro", "Canadian Dollar",
"Japanese Yen", "Australian Dollar",
"Indian Rupee", "Mexican Peso"};
rate = new double [] {0.0, 0.948968, 0.646920,
0.00803616, 0.562082,
0.0204441, 0.103735};
result = new JLabel (" U.S. Dollars ????? ");
add (title);
add (result);
}
// ******************************************************
// Represents an action listener for the combo box.
// ******************************************************
private class ComboListener implements ActionListener
{
// --------------------------------------------------
// Determines which currency has been selected and
// the value in that currency then computes and
// displays the value in U.S. Dollars.
// --------------------------------------------------
public void actionPerformed (ActionEvent event)
{
int index = 0;
result.setText ("1 " + currencyName[index] +
" = " + rate[index] + " U.S. Dollars");
}
}
}
主程序
// *****************************************************************
// File name: CurrencyConverter.java
// Name:
// Purpose: Computes the dollar value of the cost of an item in
// another currency
// *****************************************************************
import java.awt.*;
import javax.swing.*;
public class CurrencyConverter
{
public static void main(String[] args)
{
JFrame frame = new JFrame("Currency Converter");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
RatePanel ratePanel = new RatePanel();
frame.getContentPane().add(ratePanel);
frame.pack();
frame.setVisible(true);
}
}
答案 0 :(得分:0)
根据rate
中的getSelectedIndex
,获取jComboBox
数组中的相应值。
物业:
jTextField
用户输入所需金额jTextField
按钮的ActionPerformed
方法可以查看您的rate
数组:
double[] rate = new double[]{0.948968, 0.646920,
0.562082, 0.0204441};
然后进行类似的计算:
double result = Double.parseDouble(jTextField2.getText()) * rate[jComboBox1.getSelectedIndex()];
并在jTextField
:
jTextField1.setText("Result: "+(String.format("%.2f", result)));
<强>输入:强>
55.23
<强>输出:* 强>
Dropdown1 - 52.41
Dropdown2 - 35.73
Dropdown3 - 31.04
Dropdown4 - 1.13
*这只是基于此示例中rate
数组中的值