Я в довольно уникальной ситуации, основанной на том, что я видел в кодировке другого. Я работаю над многокадровым графическим интерфейсом для школьного проекта и имеет четыре конвертера между различными единицами: Масса, Объем, Расстояние и Температура. Проблема я бегу в ложь с текстом Приёмников для моих преобразований температуры:NumberFormatException в многокадровом графическом интерфейсе
private class TempListener implements ActionListener{
public void actionPerformed (ActionEvent event){
double faren, cels;
String text = temperature.getText();
faren = Integer.parseInt(text);
cels = (faren-32) * 5/9;
rLabelT.setText(Double.toString(cels));
}
}
private class Temp1Listener implements ActionListener{
public void actionPerformed (ActionEvent event){
double faren, cels;
String text = temperature1.getText();
cels = Integer.parseInt(text);
faren = (cels+32) * 9/5;
rLabelT1.setText(Double.toString(faren));
}
}
метод Integer.parseInt ловит NumberFormatException.java и останавливает его от завершения расчетов. Теперь это кодирование почти идентично аналогичной программе из моего учебника с единственными изменениями, являющимися типом переменной. То, что я беспокоиться о том, что другие кадры имеют полностью функциональные расчеты, основанные на том же блоке:
private class MassListener implements ActionListener{
public void actionPerformed (ActionEvent event){
double pounds, kilograms;
String text = mass.getText();
pounds = Integer.parseInt(text);
kilograms = pounds/2.2;
rLabelM.setText(Double.toString(kilograms));
}
}
private class VolumeListener implements ActionListener{
public void actionPerformed (ActionEvent event){
double litres, gallons;
String text = volume.getText();
gallons = Integer.parseInt(text);
litres = .264 * gallons;
rLabelV.setText(Double.toString(litres));
}
}
private class DistListener implements ActionListener{
public void actionPerformed (ActionEvent event){
double miles, kilo;
String text = distance.getText();
miles = Integer.parseInt(text);
kilo = miles * 1.609;
rLabelD.setText(Double.toString(kilo));
}
}
Все эти работы с точно такой же кодирование без каких-либо ошибок. Как это исправить? Это последний вопрос в моем коде.
код, чтобы открыть кадр, который содержит преобразования TEMP:
private class ButtonTListener implements ActionListener{
public void actionPerformed (ActionEvent event){
JFrame dialogT = new JFrame ("Temperature");
dialogT.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
dialogT.setBounds(750,650,400,150);
dialogT.setVisible(true);
iLabelT = new JLabel ("Enter a Temperature in Farenheit: ");
oLabelT = new JLabel ("Temperature in Celsius: ");
rLabelT = new JLabel ("--");
temperature = new JTextField (5);
temperature.addActionListener(new TempListener());
iLabelT1 = new JLabel ("Enter a Temperature in Celsius: ");
oLabelT1 = new JLabel ("Temperature in Farenheit: ");
rLabelT1 = new JLabel ("--");
temperature1 = new JTextField (5);
temperature.addActionListener(new Temp1Listener());
Temperature1 = new JPanel();
Temperature1.setPreferredSize(new Dimension (400,100));
Temperature1.setLayout(new FlowLayout());
Temperature1.setBackground (Color.yellow);
Temperature1.add(iLabelT);
Temperature1.add(temperature);
Temperature1.add(oLabelT);
Temperature1.add(rLabelT);
Temperature1.add(iLabelT1);
Temperature1.add(temperature1);
Temperature1.add(oLabelT1);
Temperature1.add(rLabelT1);
dialogT.getContentPane().add(Temperature1);
}
}
Что такое текст, на котором 'Integer.parseInt' бросает' NumberFormatException'? – rgettman
Почему 'Integer.parse', когда значения' mile' и 'kilo'' double'? –
В Java целочисленное деление '5/9' равно' 0', а '9/5' -' 1'. Вместо этого используйте 'double' литералы. – rgettman