我有以下代码,它是一个将Celsius转换为Fahrenheit的简单Applet。
如果输入了正确的数字并单击了该按钮,则转换温度并显示没有问题。但是,如果文本框包含无效条目,则消息需要显示在错误面板上的标签上,但除非我调整小程序的大小,否则不会发生这种情况。所以问题是“如何重新绘制!!!”
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);
}
}
有人可以解决这个问题吗?我在考虑标签尺寸问题,但后来我不确定。
答案 0 :(得分:1)
试试这个:
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(" ");
this.repaint();
}
catch(NumberFormatException ex){
lblError.setText("Invalid Celsius Value");
}
}
});
答案 1 :(得分:0)
关于null布局管理器&设置Bounds:这适用于所有操作系统(已经过Apple,unix,windows和linux测试),尽管教科书上说使用布局管理器实际上都是非常糟糕的,在12年的测试中,大小高达1000x800的像素。样本image xy; scrabble rack; info capture
参考阅读有关javadoc
中的无效,重绘和忽略重绘的内容