そこで、職場に必要な最初の GUI アプリを作成しています。いくつかの値、ラジオ ボタンからの値、ユーザー入力からの値を計算したいと考えています。
また、最終結果にいくつかの他のオプションを追加したいと考えています (費用がかかる携帯電話会社向けの追加オプションがあります)。
多数のEO(extraoptions)について、ユーザーに複数の選択肢を選択させたい。
私はコンボボックスを試しましたが、1つのオプションしか選択できないため、リストについて考えました(おそらくjList?)
すべての EO には一般的な名前が必要ですが、最終結果に計算される値 (キー) を保持することは非常に重要です。
質問は次のとおりです。それを行うための最良の方法は何だと思いますか。(私はかなり初心者なので、それほど難しいことではありません)
事前に感謝します。私に厳しくしないでください。それは私の最初の質問です! アプリ: http://tinypic.com/r/wugsnm/5
更新:
それで、このアプリを完成させるためにさらにいくつかのステップを踏むことができました。これまでのところ、リストから選択した行を取得して、合計結果に含めることができました。
しかし: a)リストから何かを選択せずに結果を計算することはできなくなりました。(テキスト フィールドのみ)
b) 結果は更新されません。別の行を選択しても、結果は同じまま
です コードは次のようになります。
public class NewJFrame extends JFrame {
Double radioNumb1 = null, radioNumb2 = null, subsidyNumb , result = null, radioNumb3 = null, radioNumb4 = null, periodNumb, ans ;
String[] eo_names = {"Value 1", "Value 2", "Value 3", "Value 4", "Value 5"}; //the names of EO (for now)
double[] eo_values = {10, 100, 1000, 10000, 100000}; // the values of EO (for now)
NumberFormat nfRegular = NumberFormat.getNumberInstance(Locale.US); // to shorten the decimals of the result
public void greaterCondition (Double radioNumb){
result = ((subsidyNumb + ans)/radioNumb) * periodNumb;
if (periodNumb > radioNumb){
JOptionPane.showMessageDialog(null, "Perioada contractuala dorita este mai mare decat cea initiala", "Error", JOptionPane.ERROR_MESSAGE);
}}
private void initRadioButton() { //setting the second radioButton as default
radioButton1.setSelected(false);
radioButton2.setSelected(true);
radioButton3.setSelected(false);
radioButton4.setSelected(false);
}
public NewJFrame() {
initComponents();
init();
}
private void init(){
setTitle("CED calculator for KA");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
private void equalButtonActionPerformed(java.awt.event.ActionEvent evt) {
radioNumb1 = Double.parseDouble(radioButton1.getText());
radioNumb2 = Double.parseDouble(radioButton2.getText());
radioNumb3 = Double.parseDouble(radioButton3.getText());
radioNumb4 = Double.parseDouble(radioButton4.getText());
subsidyNumb = Double.parseDouble(subsidyField.getText());
periodNumb = Double.parseDouble(periodField.getText());
for (int i : jList1.getSelectedIndices()){
ans = eo_values[i];
}
jList1 = new JList<String>(eo_names);
if (radioButton1.isSelected()){
greaterCondition(radioNumb1);
}
else if (radioButton2.isSelected()){
greaterCondition(radioNumb2);
}
else if (radioButton3.isSelected()){
greaterCondition(radioNumb3);
}
else if (radioButton4.isSelected()){
greaterCondition(radioNumb4);
}
answerLabel.setText("" + nfRegular.format(result) + " euro");
}
それは何ができると思いますか?これが私が行った距離です。