1

シンプルな Java 通貨コンバータ GUI を作成しようとしています。これまでのところ、私はこれを持っています:(4部)

ここに画像の説明を入力

jcombbox の各項目 (例: 各通貨) の値を設定して、変換の計算に使用できるようにするにはどうすればよいですか?

最初の部分 (1 つのコンボボックス) は次のとおりです。

import java.awt.*;
import java.awt.event.*; 
import javax.swing.*;
public class test extends JPanel
{
private JPanel panel;
private JLabel messageLabel;
private JTextField USDTextField;
private JPanel CurrencyPanel;         
private JComboBox CurrencyBox;       
private String[] Currency  = { "USD - United States Dollar",
                 "GBP - Great Britain Pound", "AUD - Australian Dollar",
                 "EUR- Euro"};
public currency1()
{
  setLayout(new BorderLayout(4,1));
  buildCurrencyPanel();
  add(CurrencyPanel, BorderLayout.CENTER);
  setVisible(true);
  setBorder(BorderFactory.createTitledBorder("Select currency"));

}
private void buildCurrencyPanel()
{
  CurrencyPanel = new JPanel();
  CurrencyBox = new JComboBox(Currency);
  CurrencyPanel.add(CurrencyBox);
}
 public static void main(String[] args)
{
   new currency1();
}
}
4

7 に答える 7

2

配列の代わりに Map (HashMap など) を使用してみてはいかがでしょうか。キーは通貨名で、値は通貨の値になります。したがって、代わりに:

private String[] Currency  = { "USD - United States Dollar",
                 "GBP - Great Britain Pound", "AUD - Australian Dollar",
                 "EUR- Euro"};

私はそれを作るでしょう:

private Map<String, Double> Currency = new HashMap<>();
//This is an initialization block
{
   Currency.put("USD - United States Dollar", 4.44);
   Currency.put("GBP - Great Britain Pound", 5.55);
   //and so on...
}
于 2013-05-03T19:00:06.823 に答える
2

コメントのみ、通貨コンバーターに関する私の見解

  1. 通貨ペアの定義、デフォルトでは基本通貨と変動通貨があります

  2. 為替レートの定義

  3. 売買の定義

  4. ベース/変数の定義

  5. (すべての am ポイントをまとめる) 4 つの可能な組み合わせがあります。

    • Base (EUR 1,000.- at 1.31) を購入

    • ベースを売る (EUR 1,000.- at 1.31)

    • 変数を購入 (USD 1,000.- at 1.311)

    • 売り変数 (USD 1,000.- at 1.311)

  6. GBP/USD には逆算方法があります

于 2013-05-03T19:37:46.337 に答える
1

Currency通貨の値である double 値を含むクラスを作成します (これらの計算方法を選択します)。

toString()「USD - 米ドル」など、コンボ ボックスに表示される通貨のリターンを指定します。

JComboBox次に、ジェネリックを使用していることを確認してください。呼び出し時に、のようにgetSelectedItem()にキャストする必要はありません。プロジェクトが Java 6 に設定されている場合は、JComboBox ジェネリックを引き続き使用できます。これは、型消去と呼ばれる派手な機能のために Java 7 で追加されました。詳細は調べてください。Currencynew JComboBox<Currency>()

于 2013-05-03T19:06:17.363 に答える
1

可能な解決策の提案:

  • String currencyName フィールドと、標準と比較したレートを保持する double currencyRate フィールドを持つ Currency クラスを作成します。
  • JComboBox のモデルを通貨のオブジェクトで埋めます。
  • JCOmboBox にセル レンダラーを指定して、Currency 名が表示されるようにします。
  • 私のGUIに「変換」JButtonを与えます
  • そのボタンのアクションでは、呼び出しによって両方のコンボ ボックスから選択された通貨を抽出し、getSelectedItem()それらを使用して答えを計算します。
  • 計算を試みる前に、選択した項目がいずれも null でないことを確認してください。
  • または、両方のコンボ ボックスに追加された ActionListener を介してこれを行うこともできますが、選択した値が null でないこと、または選択したインデックスが -1 でないことを最初に確認する必要があります。
于 2013-05-03T19:00:00.373 に答える