所以我正在为我的工作场所制作我的第一个 GUI 应用程序。我想计算一些值,一些来自单选按钮,一些来自用户输入。
我还想在最终结果中添加一些其他选项(移动电话公司有额外的选项)。
关于EO(extraoptions)数量众多,我想让用户选择多个选项。
我尝试了一个组合框,但它只允许您选择一个选项,所以我考虑了一个列表(也许是 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");
}
你认为可以做到什么?这就是我走了多远。