[英]Use 2 JComboBoxes to do different math equations, java
I'm trying to get a simple currency converter in Java. 我正试图在Java中获得一个简单的货币转换器。 My problem is that I can't get the different equations to work, I have tried using ActionListener for the JComboBox, and if statements, but it doesent seem to work.
我的问题是我无法使用不同的方程式,我尝试使用ActionListener作为JComboBox和if语句,但它似乎有效。 Could someone help me?
有人能帮助我吗? http://pastebin.com/RuM2jF5q Is my entire code, please ask me if something is unclear :)
http://pastebin.com/RuM2jF5q是我的整个代码,如果有什么不清楚请问我:)
I see two problems in your code: 我在你的代码中看到两个问题:
You reversed the konvleft and konvright text fields when you add them to the panel. 将konvleft和konvright文本字段添加到面板时,可以将其反转。 You should first add konvleft and then konvright, otherwise they are reversed.
你应该首先添加konvleft然后konvright,否则它们是相反的。
In the second ActionListener, you are still parsing the same konvleft.getText() value instead of parsing the konvright one 在第二个ActionListener中,您仍在解析相同的konvleft.getText()值而不是解析konvright值
Fix the above and you will see it working. 修复上述问题,您将看到它正常工作。
try this: 尝试这个:
import java.awt.Container;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class Copy {
/**
* @param args
*/
public static void main(String[] args) {
JFrame ramme = new JFrame("Valutakalkulator");
ramme.setResizable(true);
ramme.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ramme.setBounds(200, 300, 400, 200);
Container panel = ramme.getContentPane();
panel.setLayout(new GridLayout(4,1,10,10));
String[] Valutavalg = { "USD","NOK","EUR" };
final JComboBox<?> Valutavalg1 = new JComboBox<Object>(Valutavalg);
final JComboBox<?> Valutavalg2 = new JComboBox<Object>(Valutavalg);
final JTextField konvleft = new JTextField("0");
final JTextField konvright = new JTextField("0");
final JTextField utbytte = new JTextField ("Utbytte av valuta");
JButton bleft = new JButton("Konverter -->");
JButton bright = new JButton("<-- Konverter");
bleft.setFont(new Font("sansserif", Font.PLAIN + Font.BOLD, 14));
bright.setFont(new Font("sansserif", Font.PLAIN + Font.BOLD, 14));
panel.add(Valutavalg1);
panel.add(Valutavalg2);
panel.add(bleft);
panel.add(bright);
panel.add(konvleft);
panel.add(konvright);
panel.add(utbytte);
ramme.setVisible(true);
ActionListener ValutaLeft = new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
double numl = Double.parseDouble(konvleft.getText());
int combovalg1 = Valutavalg1.getSelectedIndex();
int combovalg2 = Valutavalg2.getSelectedIndex();
if (combovalg1==0){
if (combovalg2==0){
double totaltVerdi = numl*10;
setTotal(totaltVerdi, utbytte);
}
if (combovalg2==1){
double totaltVerdi = numl*100;
setTotal(totaltVerdi, utbytte);
}
if (combovalg2==2){
double totaltVerdi = numl*1000;
setTotal(totaltVerdi, utbytte);
}
}
if (combovalg1==1){
if (combovalg2==0){
double totaltVerdi = numl*1000;
setTotal(totaltVerdi, utbytte);
}
if (combovalg2==1){
double totaltVerdi = numl*100000;
setTotal(totaltVerdi, utbytte);
}
if (combovalg2==2){
double totaltVerdi = numl*1000000;
setTotal(totaltVerdi, utbytte);
}
}
if (combovalg1==2){
if (combovalg2==0){
double totaltVerdi = numl*1000000;
setTotal(totaltVerdi, utbytte);
}
else if (combovalg2==1){
double totaltVerdi = numl*1000000;
setTotal(totaltVerdi, utbytte);
}
else if (combovalg2==2){
double totaltVerdi = numl*10000000;
setTotal(totaltVerdi, utbytte);
}
}
};
public void setTotal(double totaltVerdi, JTextField text){
totaltVerdi = Math.round(totaltVerdi*100)/100.0d;
String total1 = Double.toString(totaltVerdi);
utbytte.setText(total1);
}
};
ActionListener ValutaRight = new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
double numl = Double.parseDouble(konvright.getText());
int combovalg1 = Valutavalg1.getSelectedIndex();
int combovalg2 = Valutavalg2.getSelectedIndex();
if (combovalg2==0){
if (combovalg1==0){
double totaltVerdi = numl*10;
setTotal(totaltVerdi, utbytte);
}
if (combovalg1==1){
double totaltVerdi = numl*100;
setTotal(totaltVerdi, utbytte);
}
if (combovalg1==2){
double totaltVerdi = numl*1000;
setTotal(totaltVerdi, utbytte);
}
}
if (combovalg2==1){
if (combovalg1==0){
double totaltVerdi = numl*1000;
setTotal(totaltVerdi, utbytte);
}
if (combovalg1==1){
double totaltVerdi = numl*100000;
setTotal(totaltVerdi, utbytte);
}
if (combovalg1==2){
double totaltVerdi = numl*1000000;
setTotal(totaltVerdi, utbytte);
}
}
if (combovalg2==2){
if (combovalg1==0){
double totaltVerdi = numl*1000000;
setTotal(totaltVerdi, utbytte);
}
if (combovalg1==1){
double totaltVerdi = numl*1000000;
setTotal(totaltVerdi, utbytte);
}
if (combovalg1==2){
double totaltVerdi = numl*10000000;
setTotal(totaltVerdi, utbytte);
}
}
};
public void setTotal(double totaltVerdi, JTextField text){
totaltVerdi = Math.round(totaltVerdi*100)/100.0d;
String total1 = Double.toString(totaltVerdi);
utbytte.setText(total1);
}
};
bleft.addActionListener(ValutaLeft);
bright.addActionListener(ValutaRight);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.