在ArrayList中添加双精度的问题

时间:2013-07-26 14:14:44

标签: java swing event-handling jtextarea textwrapping

我正在完成一个GUI程序,它将作为餐馆的在线订购菜单,但我似乎有两个问题.. 我的计算处理程序方法似乎只是冻结整个Java小程序。它没有显示任何错误或任何东西,它只是冻结。继承人事件处理程序:

ArrayList<Double> yourOrderPrices = new ArrayList<Double>();
ArrayList<String>yourOrderName = new ArrayList<String>();
ArrayList<String> specifications = new ArrayList<String>();
Iterator<Double> it1 = yourOrderPrices.iterator();
private void calcButtonActionPerformed(java.awt.event.ActionEvent evt) {                                           

        int x = 0;
        double temp;

        while(it1.hasNext()){
            temp = yourOrderPrices.get(x);
            orderTotal += temp;
        }
        subTotalLabel.setText("Sub Total: " + orderTotal);
        totalPriceLabel.setText("Tax Rate: " + orderTotal / TAX_RATE);
        totalPriceLabel.setText("Total: " + (orderTotal / TAX_RATE) + orderTotal);

        //Reset Variable
        orderTotal = 0;


}                      

基本上应该做的是通过添加yourOrderPrices ArrayList中的所有价格来计算子总数,它应该除以税率并显示它,并且它应该为总价格添加税率。里面的变量代表食品价格,是双倍的。 但每次按下按钮,整个程序都会冻结。

另外,我正在尝试将文本包装在2个textArea框中,但每次我尝试调用方法setLineWrap(true);它出现在日食上,因为无法做到这一点。下面是两个文本区域,我试图把它放进去:

    detailTextArea.setEditable(false);
    detailPanel.add(detailTextArea, java.awt.BorderLayout.CENTER);

    orderTextArea.setEditable(false);
    eastPanel.add(orderTextArea);

1 个答案:

答案 0 :(得分:1)

使用a代替。

double orderTotal = 0;
for(Double price : yourOrderPrices) {
    orderTotal += price;
}

至于setLineWrap(true),Eclipse究竟说了什么?

解决方案: 我安装了java和Eclipse并自己试了一下。我创建了一个JTextArea并将lineWrap设置为true,它没有任何投诉。您是否检查过导入 javax.swing.JTextArea 而不是其他内容?

我的参考代码:

import javax.swing.JTextArea;

public class Main {
    public static void main(String[] args) {
        JTextArea area = new JTextArea();
        area.setLineWrap(true);
    }
}