摂氏を華氏に変換する単純なアプレットである次のコードがあります。
正しい数値を入力してボタンを押すと、温度換算されて問題なく表示されます。ただし、テキスト ボックスに無効なエントリが含まれている場合は、エラー パネルのラベルにメッセージを表示する必要がありますが、アプレットのサイズを変更しない限り、これは発生しません。そこで問題は「どうやって塗り直すか!!!」
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TemperatureConverter extends Applet{
private JLabel lblCel=new JLabel("Celsius Temperature :");
private JLabel lblFar=new JLabel("Fahrenheit value :");
private JLabel lblResult=new JLabel("");
private JLabel lblError=new JLabel("");
private JTextField txtFahr;
private JPanel celsPanel;
private JPanel farPanel;
private JPanel errorPanel;
private JButton btnEnter = new JButton("Convert");
public double temp = 0.0;
public void init(){
celsPanel = new JPanel(new GridLayout(1,3,2,2));
celsPanel.add(lblCel);
txtFahr = new JTextField(50);
celsPanel.add(txtFahr);
btnEnter.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
try{
temp = Double.parseDouble(txtFahr.getText());
double X = (temp - 32)* 0.69;
lblResult.setText(String.valueOf(X));
lblError.setText(" ");
}
catch(NumberFormatException ex){
lblError.setText("Invalid Celsius Value");
}
}
});
celsPanel.add(btnEnter);
farPanel = new JPanel(new GridLayout(1,2,2,2));
farPanel.add(lblFar);
lblResult.setSize(100, 30);
farPanel.add(lblResult);
errorPanel = new JPanel();
lblError.setSize(100, 30);
errorPanel.add(lblError);
setLayout(new GridLayout(3,2,2,2));
add(celsPanel);
add(farPanel);
add(errorPanel);
setSize(550,200);
}
}
誰でもこれを理解できますか?ラベルのサイズの問題を考えていましたが、それについてはわかりません。