0

レストランのオンライン注文メニューとして機能する GUI プログラムを完成させていますが、2 つの問題があるようです。計算ハンドラー メソッドが 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 倍になっています。しかし、ボタンを押すたびに、プログラム全体がフリーズします。

また、テキストを 2 つの textArea ボックスでラップしようとしていますが、毎回メソッド setLineWrap(true); を呼び出そうとします。それを行うことができないとして、Eclipseに表示されます。これを入れようとしている2つのテキスト領域は次のとおりです。

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

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

1 に答える 1

1

Use a for each instead.

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

As for setLineWrap(true), exactly what does Eclipse say?

Solution: I installed java and Eclipse and tried it out by myself. I created a JTextArea and set the lineWrap to true and it works without complaints. Have you checked that you imported javax.swing.JTextArea and not something else?

My code for reference:

import javax.swing.JTextArea;

public class Main {
    public static void main(String[] args) {
        JTextArea area = new JTextArea();
        area.setLineWrap(true);
    }
}
于 2013-07-26T14:28:04.313 に答える