Я делаю небольшой Java Swing апплет, который преобразует температуру: TempConvert.javaПолучить Значение JTextField Изменено
Вот мой код:
package swing;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
/** Celcius to Fahrenheit Converter
* @version 1.0
* @author Oliver Ni
*/
public class TempConvert extends JApplet{
JLabel result;
JRadioButton ctof;
JRadioButton ftoc;
JTextField deg;
JLabel degLab;
JButton convert;
public void convert() {
if (ctof.isSelected() == true) {
result.setText("<html><br>" + Integer.toString(Integer.parseInt(deg.getText()) * 9/5 + 32) + "<sup>o</sup> F</html>");
} else if (ftoc.isSelected() == true) {
result.setText("<html><br>" + Integer.toString((Integer.parseInt(deg.getText()) - 32) * 5/9) + "<sup>o</sup> C</html>");
} else {
result.setText("<html><br>Error.</html>");
}
}
public void makeApplet() {
setLayout(new FlowLayout());
ctof = new JRadioButton("Celcius to Fahrenheit");
ftoc = new JRadioButton("Fahrenheit to Celcius");
convert = new JButton("Convert");
result = new JLabel("");
ButtonGroup group = new ButtonGroup();
group.add(ctof);
group.add(ftoc);
deg = new JTextField(10);
degLab = new JLabel("<html><sup>o</sup></html>");
convert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
convert();
}
});
add(ctof);
add(ftoc);
add(deg);
add(degLab);
add(convert);
add(result);
}
public void init() {
try {
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
makeApplet();
}
});
} catch(Exception e) {
System.out.println("Error loading because " + e);
}
}
}
Я хочу, чтобы вызвать функцию convert()
каждый раз, когда текст в JTextField
deg
изменен. Есть ли способ сделать это?
Любая помощь будет оценена!
Вы уже добавили ActionListener к своей кнопке конвертирования - разве это не все, что вам нужно сделать? –
Это задание? И если да, то у вас есть особые требования? И если да, отправьте их, а также попытайтесь решить эту проблему. Если бы это была моя программа, первое, что я сделал бы, это сделать ее более надежной: разрешить двойную числовую запись, использовать JFormattedTextField, чтобы разрешить только числовую запись, а затем довольно макет GUI. –