猿问

驱动程序和方法似乎不能一起工作

我有一个学校项目,我们需要创建一个程序将数字转换为二进制,但我似乎无法让它们一起工作。他们会编译,但实际上不会得到正确的答案,我的 toString() 方法有效,它只是没有获取用户输入的十进制或从 ConvertToBinary 中获取的二进制文件,所以我不确定它在哪里失败。任何帮助都会很棒。驱动程序和方法如下!谢谢!


司机:


import javax.swing.*;

import java.awt.*;

import java.awt.event.*;


class DecimalConverter extends JPanel{

//Sets up the Window

public DecimalConverter(){ 

  JFrame window = new JFrame("Binary To Decimal");

  //exit program when window closes

  window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


  //WINDOW COMPONENETS:

  JLabel lblPrompt = new JLabel("Enter your number to convert: ");

  JLabel lblBinary = new JLabel("Binary: ");

  JTextField txtDecimal = new JTextField();

  JButton btnToBinary = new JButton("To Binary");


  //SET POSITIONS

  lblPrompt.setBounds(40, 40, 200, 30);

  txtDecimal.setBounds(250, 40, 100, 30);

  lblBinary.setBounds(40, 80, 300, 30);

  btnToBinary.setBounds(250, 120, 100, 30);


  setLayout(null);


  add(lblPrompt);

  add(txtDecimal);

  add(lblBinary);

  add(btnToBinary);


  window.add(this);

  window.setSize(400, 200);

  window.setVisible(true);


  //Event for button

  btnToBinary.addActionListener(new ActionListener(){

     public void actionPerformed(ActionEvent e){

        String str = txtDecimal.getText();


           DecimalBinary b = new DecimalBinary();               


           lblBinary.setText(b.toString());


        }//ends Action Performed

     }//Ends ActionListener

  );//End Event


 }//End Constructor


 public static void main(String args[]){





  new DecimalConverter();


}//ends main



}//End Class

方法:


class DecimalBinary{

private String decimal = "0";

private String binary = "";

private int dec;


public void setDecimal(String decimal){

 int dec = Integer.parseInt(decimal);

 convertToBinary(dec);

}


public String convertToBinary(int dec){

 int pow = 128;


 while (dec > 0){


    if (dec >= pow){

      binary += "1";

      dec = dec - pow;

    } 

    else if (dec < pow){

        binary += "0";

    }

 pow = pow / 2;



 }

 return decimal;

}



  public String  toString(){

  return decimal + " is " + binary + " in binary";

  }

 }


拉风的咖菲猫
浏览 83回答 1
1回答

侃侃尔雅

更改您的代码如下 ( // added)public void setDecimal(String decimal){&nbsp;this.decimal = decimal // added&nbsp;int dec = Integer.parseInt(decimal);&nbsp;convertToBinary(dec);}public void actionPerformed(ActionEvent e){&nbsp; &nbsp; String str = txtDecimal.getText();&nbsp; &nbsp; DecimalBinary b = new DecimalBinary();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; b.setDecimal(str) // added&nbsp; &nbsp; lblBinary.setText(b.toString());}//ends Action Performed
随时随地看视频慕课网APP

相关分类

Java
我要回答