JAVA SWING GUI:代码未产生正确的输出

问题描述 投票:0回答:1

正在执行的代码应该是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的文档中,我不断遇到各种错误。我相信是因为有浮点数?

(我的输出窗口)

java swing user-interface converters
1个回答
0
投票

首先,您的JLabels“ cent”和“ inch”从未实例化为new JLabel();。其次,在您的ButtonHandlerCM中,您尝试使用尚未声明的String.format()上的double inch。为了简明起见,我修复了这些问题并整理了一些代码。

© www.soinside.com 2019 - 2024. All rights reserved.