正在执行的代码应该是Java GUI Swing,它允许用户使用类似于下图的图形用户界面(GUI)来限制从英寸到厘米的距离测量,反之亦然。 ruler.png
下面是我的代码
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class ConvertGUI extends JFrame
{
private JLabel label1;
private JLabel label2;
private JLabel label3;
private JLabel label4;
JLabel cent;
JLabel inch;
private JTextField inches;
private JTextField centimeters;
private JButton INtoCMButton;
private JButton CMtoINButton;
public ConvertGUI()
{
super( "Measurement Converter Appliaction" );
setLayout( new FlowLayout() );
ImageIcon icon=new ImageIcon( getClass().getResource("ruler.png"));
label1 = new JLabel( icon );
add( label1 );
label2 = new JLabel( "metric converter" );
add( label2 );
label3 = new JLabel( "inches:" );
add( label3 );
label4 = new JLabel( "centimeters:" );
add( label4 );
centimeters = new JTextField( 10 );
add( centimeters);
inches = new JTextField( 10 );
add( inches);
INtoCMButton = new JButton( "Convert to CM" );
add( INtoCMButton );
INtoCMButton.addActionListener( new ButtonHandlerIN() );
CMtoINButton = new JButton( "Convert to IN" );
add( CMtoINButton );
CMtoINButton.addActionListener( new ButtonHandlerCM() );
}
private class ButtonHandlerIN implements ActionListener
{
@Override
public void actionPerformed(ActionEvent event)
{
double num = Double.parseDouble( inches.getText() );
double centimeters = (num *2.54);
String INtoCM_String= String.format("%.1f", centimeters) ;
cent.setText(INtoCM_String );
}
}
private class ButtonHandlerCM implements ActionListener
{
@Override
public void actionPerformed(ActionEvent event)
{
double num = Double.parseDouble( cent.getText() );
String CMtoIN_String= String.format("%.1f", inch) ;
double inch = (num /2.54);
inches.setText( CMtoIN_String );
}
}
}
这是运行所需的其他源代码文件
import javax.swing.JFrame;
public class Prog9 {
public static void main(String[] args)
{
ConvertGUI window = new ConvertGUI();
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setSize( 250, 180 );
window.setVisible(true);
}
}
这是我的输出,但是在eclipse的文档中,我不断遇到各种错误。我相信是因为有浮点数?
(我的输出窗口)
首先,您的JLabels“ cent”和“ inch”从未实例化为new JLabel();
。其次,在您的ButtonHandlerCM
中,您尝试使用尚未声明的String.format()
上的double inch
。为了简明起见,我修复了这些问题并整理了一些代码。