Я пишу апплет Java для класса программирования для расчета стоимости обучения. Я думаю (нет, я знаю), я разоблачил свое освещение, пытаясь заставить ActionListener получить входное значение, а затем использовать это значение для выполнения вычисления. Код ниже. Это домашнее задание, поэтому я не ищу кучу кода - я бы просто хотел указать в правильном направлении, как получить значение, которое пользователь вводит в текстовое поле «numCredits», включенное в формулу расчета обучения , Благодаря!использовать значение ввода для выполнения вычисления - Java applet
/**
* Calculate tuition at NHCC based on
* number of credits and instruction type.
*
* by Jodi Rehlander
* version 1.0, 9/7/15 for CSci1130-51
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Tuition4 extends JApplet implements ActionListener
{
Image nhccImg;
ImageIcon nhccIcon;
JLabel credits, cType, nhcc, title;
JTextField numCredits;
JButton online, standard, nursing;
JTextArea tType;
String inputCredits;
int numCreditsInt = 0;
double totalOnline;
double totalStandard;
double totalNursing;
//define buttons, add listeners, display the buttons in the applet
public void init()
{
getContentPane().setBackground(Color.WHITE);
setLayout(new BorderLayout());
nhccImg = getImage(getCodeBase(), "NHCCLOGO.png");
nhccIcon = new ImageIcon(nhccImg);
nhcc = new JLabel (nhccIcon);
credits = new JLabel("How many credits?");
cType = new JLabel("\n What kind of classes?");
online = new JButton("Online");
standard = new JButton("Standard");
nursing = new JButton("Nursing");
numCredits = new JTextField("",3);
inputCredits = numCredits.getText();
tType = new JTextArea(12,14);
tType.setEditable(false);
addListeners();
add(nhcc, BorderLayout.WEST);
JPanel pane = new JPanel(new FlowLayout());
pane.add(credits);
pane.add(numCredits);
pane.add(cType);
pane.add(online);
pane.add(standard);
pane.add(nursing);
pane.add(tType);
add(pane, BorderLayout.CENTER);
}
public void addListeners()
{
numCredits.addActionListener(this);
online.addActionListener(this);
standard.addActionListener(this);
nursing.addActionListener(this);
}
public void actionPerformed(ActionEvent ae)
{
Object obj = ae.getSource();
if(obj == online)
{
numCreditsInt = Integer.parseInt(numCredits.getText());
tType.setText("\n \n Tuition type: Online \n \n Cost/Credit: $177.96 \n Fees: $14.35 \n Textbooks: $250.00 \n \n Total Cost: " + "$"+(totalOnline));
}
else if (obj == standard)
{
tType.setText("Tuition type: Standard \n Cost/Credit: $165.08 \n Fees: $14.35 \n Parking: $3.20 \n Textbooks: $350.00 \n Total Costs: $xxx.xx \n");
}
else if (obj == nursing)
{
tType.setText("Tuition type: Standard \n Cost/Credit: $189.78 \n Fees: $14.35 \n Parking: $3.20 \n Textbooks: $600.00 \n Total Costs: $xxx.xx \n");
}
revalidate();
repaint();
}
public double calculateOnlineTuition(int numCredits, double rate, double tuition, double fees,
double textbooks)
{
//calculate online tuition
//numCredits = Integer.parseInt(inputCredits);
rate = 177.96;
fees = 14.35;
textbooks = 275.00;
tuition = numCreditsInt*rate;
totalOnline = tuition + fees + textbooks;
return totalOnline;
//calculate Standard and Nursing rates once Online works
}
public void paint(Graphics g)
{
super.paint (g);
Font heading = new Font("Monospaced", Font.BOLD, 14);
Font small = new Font("Monospaced", Font.PLAIN, 12);
Font smallItalic = new Font("Monospaced", Font.ITALIC, 12);
g.setFont(heading);
g.drawString("FEE BREAKDOWN:", 272, 375);
g.setFont(small);
g.drawString("Technology Fee $8.00", 272, 390);
g.drawString("Student Life Fee $5.00", 272, 405);
g.drawString("MSCSA Fee $0.35", 272, 420);
g.drawString("Health Svcs Fee $1.00", 272, 435);
g.drawString("*Parking $3.20", 272, 450);
g.setFont(smallItalic);
g.drawString("*Parking not included", 280,485);
g.drawString("in online rate", 300,501);
}
}
почему у вас есть actionListener на 'numCredits' просто получает значение, когда вы нажимаете –
[Почему учителя CS должны прекращать преподавать Java-апплеты] (http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should-stop-teaching -java-апплеты /). –
Когда запускается 'actionListener', вам нужно получить значение для числа номеров кредитов и вызвать метод' calculateOnlineTuition', передав ему требуемые параметры на основе кнопки, которую использует нажатие кнопки – MadProgrammer