2009-12-15 176 views
1

我正在做一个程序,它有两个不同的问题,欧姆和安培是确切的。虽然循环/ java

我知道如何做这个工作,但问题是最后还会出现另一个问题,问“你想做一个新的计算吗?”这个问题应该像我按下“Y”那样工作,程序应该从头开始继续,如果按“N”,程序应该退出。

我希望任何人有一些想法,可以帮助我完成这一点。程序必须使用JOptionpane.dialog /消息格式。

// delajz

这就是我得到的atm。

//Declaring Variables 

Ampere = Integer.parseInt(FragaAm); 
Ohm = Integer.parseInt(FragaOhm); 

//koden 
do 
{ 
    FragaAm =JOptionPane.showInputDialog("Hur många Ampere? "); 
    FragaOhm = JOptionPane.showInputDialog("hur hög resistans? "); 
    svar = Ohm*Ampere; //calculate 
    slutsvar = svar + "Volt"; //answer 
    JOptionPane.showMessageDialog(null,slutsvar);  

    borjaom =JOptionPane.showInputDialog("Igen? J eller N "); // the question which ask for new calc 
} while (borjaom == "j" ||borjaom == "J"); 
+1

如果您可以添加一些代码,那可能会帮助我们确定您的需求。只需确保在发布时将缩进代码行缩进4个空格,以便在SO上正确格式化。 – 2009-12-15 15:03:36

+0

你有没有胚胎的代码,或者你会不会有人为你写代码? – Tomas 2009-12-15 15:03:48

+0

这是功课吗?你确定你正在使用JavaScript,而不是Java Swing吗? – Pops 2009-12-15 15:05:12

回答

3

您可以先看太阳文章How to Make Dialogs
它提到配置就像你正在寻找让一个JOptionPane

alt text http://java.sun.com/docs/books/tutorial/figures/uiswing/components/JOptionPaneMetal.png

final JOptionPane optionPane = new JOptionPane(
    "The only way to close this dialog is by\n" 
    + "pressing one of the following buttons.\n" 
    + "Do you understand?", 
    JOptionPane.QUESTION_MESSAGE, 
    JOptionPane.YES_NO_OPTION); 
+0

问题要求按“Y”或“N”而不是从一开始就是我的问题的标签是或否。 – Brandon 2009-12-15 16:21:45

+0

yea brandon。但它只是一种解释方式,我需要一些东西来调用程序重启或退出。这工作同样好 – Fredrik 2009-12-15 16:37:02

2

试试这个:

borjaom =JOptionPane.showInputDialog(null, "Igen? J eller N "); 

此外,JOptionPane只能用于输入字符串 。因此,您设置为接收来自JOptionPane的输入的所有变量应声明为字符串。 安培欧姆应被声明为整数,而FragaAmFragaOhmborjaom应被声明为字符串。

+1

好评。 +1 – VonC 2009-12-15 16:26:25

0

作为替代什么VonC说,JOptionPane.dialog /消息格式:

//Declaring Variables 
int borjaom = JOptionPane.NO_OPTION; 

// omitted other code, but it should still be here 

    // Note that borjaom is an int now 
    borjaom = JOptionPane.showConfirmDialog(null, "Igen?", "Title goes here", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); // the question which ask for new calc 

    } while (borjaom == JOptionPane.YES_OPTION); 

borjaom将被设置为的JOptionPane.NO_OPTIONJOptionPane.YES_OPTION之一。

哦,如果你想有一个标题少对话框(或默认标题),改变"Title goes here"null

+0

正如预期的那样工作,是的,我改变了标题;) – Fredrik 2009-12-15 16:36:07

2

你而条件:

} while (borjaom == "j" ||borjaom == "J"); 

假定字符串可以对象的基础上进行比较,但在字符串被实现的情况下这是真的,最好切换到表示是/否结果的枚举整数,或者使用来自String的等方法:

} while ("J".equalsIgnorecase(borjaom)); 

(使用这种格式,而不是borjaom.equalsIgnorecase("J")有其处理的情况borjoam == null正确的优势。)

0

这部分将无法正常工作:

Ampere = Integer.parseInt(FragaAm); 
    Ohm = Integer.parseInt(FragaOhm); 

    do 
    { 
     FragaAm =JOptionPane.showInputDialog("Hur många Ampere? "); 
     FragaOhm = JOptionPane.showInputDialog("hur hög resistans? "); 

阅读之前,您正在转换FragaAm为整它。
必须先阅读,然后转换:

do 
    { 
     FragaAm =JOptionPane.showInputDialog("Hur många Ampere? "); 
     Ampere = Integer.parseInt(FragaAm); 
     FragaOhm = JOptionPane.showInputDialog("hur hög resistans? "); 
     Ohm = Integer.parseInt(FragaOhm); 

,并请看看在Code Conventions for the Java Programming Language
你的情况:变量开始与小写(惯例,但整个世界各地使用)