मैं एक जेएफआरएएम बना रहा हूं जिसमें दो पेज हैं (P07 और P07ProcessData)। मैं textarea में सही जानकारी लिखने के लिए बटन नहीं मिल सकता है

P07ProcessData एक DAT फ़ाइल से पेरोल जानकारी पढ़ता है और गणना करता है। पी 07 जेएफआरएएम है। मैं चाहता हूं कि पी 07 टेक्स्टरेरा में पेरोल जानकारी लिखने के लिए दो अलग-अलग बटन क्लिक करें। एक, शो दिखाएं, नाम और पेरोल जानकारी दिखाने के लिए ... दो, जानकारी के योग दिखाने के लिए, टोटल दिखाएं। मैं इसे करने के लिए नहीं मिल सकता है। किसी भी सहायता की सराहना की जाएगी।

import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class P07 extends JFrame implements ActionListener
{
    private static P07 MyFrame;
private static String Author, Company, Heading, Totals;

private JPanel       pnlHeading, pnlDisplay, pnlButtons;
private JButton      btnShowPay, btnShowTotals, btnReset, btnExit;
private JLabel       lblAuthor, lblCompany, lblHeading;
private JTextArea    txtArea;

public P07()
{
     super(Author);

    pnlHeading = new JPanel(new GridLayout(0, 1, 4, 4) );
    pnlHeading.setBackground(Color.blue);
    pnlDisplay = new JPanel(new GridLayout(0, 1, 2, 2) );
    pnlButtons = new JPanel(new GridLayout(1, 4, 4, 5) );
    pnlButtons.setBackground(Color.blue);

    Container Pane = getContentPane();
    Pane.setLayout(new BorderLayout(2, 2) );
    Pane.setBackground(Color.blue);
    Pane.add(pnlHeading, "North");
    Pane.add(pnlDisplay, "Center");
    Pane.add(pnlButtons, "South");

    lblAuthor = new JLabel(Author);
    lblAuthor.setOpaque(true);
    lblAuthor.setBackground(Color.MAGENTA);
    lblAuthor.setForeground(Color.BLACK);
    lblAuthor.setFont(new Font("Times New Roman", Font.PLAIN, 20) );
    pnlHeading.add(lblAuthor);

    lblCompany = new JLabel(Company);
    lblCompany.setOpaque(true);
    lblCompany.setBackground(Color.CYAN);
    lblCompany.setForeground(Color.BLACK);
    lblCompany.setFont(new Font("Times New Roman", Font.PLAIN, 20) );
    pnlHeading.add(lblCompany);

    lblHeading = new JLabel(Heading);
    lblHeading.setOpaque(true);
    lblHeading.setBackground(Color.GREEN);
    lblHeading.setForeground(Color.BLACK);
    lblHeading.setFont(new Font("Times New Roman", Font.PLAIN, 20) );
    pnlHeading.add(lblHeading);

    txtArea = new JTextArea();
    txtArea.setEditable(false);
    txtArea.setBackground(Color.white);
    txtArea.setFont(new Font("Monospaced", Font.PLAIN, 16) );
    JScrollPane Scroller = new JScrollPane(txtArea);
    pnlDisplay.add(Scroller);

    btnShowPay = new JButton("Show Pay");
    btnShowPay.setBackground(Color.GRAY);
    btnShowPay.setForeground(Color.black);
    btnShowPay.setFont(new Font("Times New Roman", Font.PLAIN, 18) );
    pnlButtons.add(btnShowPay);
    btnShowPay.addActionListener(this);

    btnShowTotals = new JButton("Show Totals");
    btnShowTotals.setBackground(Color.GRAY);
    btnShowTotals.setForeground(Color.black);
    btnShowTotals.setFont(new Font("Times New Roman", Font.PLAIN, 18) );
    pnlButtons.add(btnShowTotals);
    btnShowTotals.addActionListener(this);

    btnReset = new JButton("Reset");
    btnReset.setBackground(Color.GRAY);
    btnReset.setForeground(Color.black);
    btnReset.setFont(new Font("Times New Roman", Font.PLAIN, 18) );
    pnlButtons.add(btnReset);
    btnReset.addActionListener(this);

    btnExit = new JButton("Exit");
    btnExit.setBackground(Color.GRAY);
    btnExit.setForeground(Color.black);
    btnExit.setFont(new Font("Times New Roman", Font.PLAIN, 18) );
    pnlButtons.add(btnExit);
    btnExit.addActionListener(this);

    addWindowListener(new WinListener() );
}

private void Reset()
{
    txtArea.setText("");
    btnShowPay.setEnabled(true);
    btnReset.setEnabled(false);
}

public static void main(String args[]) throws IOException
{
    Author  =     "";
    Company =     "Go Broke and Lay Off Manufacturing Company";
    Heading =     "Employee Name     Hours Worked     Pay Rate     Gross  
                           Pay     Pension     Net Pay";

    MyFrame = new P07();
    MyFrame.setSize(Toolkit.getDefaultToolkit().getScreenSize() );
    MyFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);
    MyFrame.setVisible(true);

}

private void ExitProgram()
{
    MyFrame.setVisible(false);
    MyFrame.dispose();
    System.exit(99);
}

public void actionPerformed(ActionEvent Ae)
{
    if (Ae.getActionCommand() == "Show Pay")
    {
        txtArea.setText("");
        try
        {
            P07ProcessData.ProcessData(txtArea); }
            catch (IOException Error)
            {
                System.err.print("IOException error..." +    
                                     Error.getMessage() );
                txtArea.append("IOException error..." + 
                                     Error.getMessage() );
            }
                btnShowPay.setEnabled(false);
                btnReset.setEnabled(true);
    }

    else if (Ae.getActionCommand() == "Show Totals")
    {

        try
        {
            P07ProcessData.ProcessData(txtArea); }
            catch (IOException Error)
            {
                System.err.print("IOException error..." + 
                                     Error.getMessage() );
                txtArea.append("IOException error..." + 
                                     Error.getMessage() );
            }
                btnShowTotals.setEnabled(false);
                btnReset.setEnabled(true);
    }


    else if (Ae.getActionCommand() == "Reset") Reset();
    else ExitProgram();

}

class WinListener extends WindowAdapter
{
    @Override public void windowClosing(WindowEvent We)
    {
        ExitProgram();
    }
}

}

import java.io.*;
import java.util.*;
import javax.swing.*;

public class P07ProcessData
{

private static String Name, outText, outText2;
private static double hoursWorked, payRate, grossPay, pension, netPay, 
                   totalHours, totalGross, totalPension, totalNet;


public static void ProcessData(JTextArea txtArea) throws IOException
{

    RandomAccessFile Infile = new RandomAccessFile("P07.DAT", "r");
    StringTokenizer Tokens;
    long FileLength = Infile.length();

    while(Infile.getFilePointer() < FileLength)
    {
        Tokens = new StringTokenizer(Infile.readLine() );
        Name = Tokens.nextToken() + ',' + ' ' + Tokens.nextToken();
        hoursWorked = Double.parseDouble(Tokens.nextToken() );
        payRate = Double.parseDouble(Tokens.nextToken() );

        CalculatePay();
        SetOutputTextPay();
        txtArea.append(outText + outText2);

    } //while

    Infile.close();
}

    private static void CalculatePay()
    {
        if (hoursWorked > 40) grossPay = (40 + (hoursWorked - 40) * 
                    1.5) * payRate;
        else grossPay = hoursWorked * payRate;
            if (hoursWorked < 30) pension = grossPay * 0.061;
            else pension = payRate * 30 * 0.061;
            netPay = grossPay - pension;
    }

    private static void CalculateTotals()
    {
        totalHours = totalGross = totalPension = totalNet = 0;

        totalHours = totalHours + hoursWorked;
        totalGross = totalGross + grossPay;
        totalPension = totalPension + pension;
        totalNet = totalNet + netPay;
    }

    private static void SetOutputTextPay()
    {
        outText = String.format("%17s", Name) + String.format("%12f", 
                              hoursWorked) + String.format("%12f", payRate) + 
                              String.format("%12f", grossPay) + String.format("%12f", 
                              pension) + String.format("%12f", netPay) + '\n';
    }

    private static void SetOutputTextTotals()
    {
        outText2 = String.format("TOTALS:" + String.format("%21f", 
                               totalHours) + String.format("%24f", totalGross) + 
                               String.format("%12f", totalPension) + 
                               String.format("%12f", totalNet) );
    }

 }  //Class: P07ProcessData 
0
@peeskillet मैं स्ट्रिंग्स लौटने के लिए चाहता हूं लेकिन मुझे नहीं लगता कि मैं तारों की तुलना करना चाहता हूं। मैं CalatePay() विधि के परिणामों को वापस करने के लिए शो पे बटन चाहता हूं और इसे टेक्स्ट क्षेत्र में रखता हूं, फिर मैं शो टोटल बटन को गणना() विधि की टोटल परिणामों को वापस करने के लिए चाहता हूं और इसे उसी टेक्स्ट में रखता हूं पिछले परिणामों के नीचे क्षेत्र। मूल रूप से, मैं टेक्स्ट क्षेत्र में शो पे परिणाम चाहता था और शो टोटल परिणाम बटन के ऊपर एक टेक्स्ट फ़ील्ड में परिणाम देता था लेकिन यह बिल्कुल काम नहीं करेगा इसलिए मैंने टेक्स्ट फ़ील्ड हटा दिया।
जोड़ा लेखक user1294228, स्रोत
अगर (Ae.getActionCommand() == "वेतन दिखाएं") .equals() नहीं == के साथ स्ट्रिंग की तुलना करें। मैं स्ट्रिंग्स की तुलना कैसे करूं देखें। इसके अलावा <कोड देखें > getActionCommand javadoc प्राप्त करें। आप देखेंगे कि यह एक स्ट्रिंग देता है
जोड़ा लेखक Paul Samsotha, स्रोत
बेहतर सहायता के लिए, एक SSCCE पोस्ट करें।
जोड़ा लेखक Andrew Thompson, स्रोत