Skip to Main Content

Java Programming

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

converting from int to char

807607Dec 1 2006 — edited Dec 1 2006
I am working on a program that takes an integer number base 10 and converts it to a given base between 2 and 20. I need to consider the fact that number bases over 10 also include letters and so my values must be stored in a stack that holds characters (CharacterStack).

I am having a lot of problems with my code with a long list of errors that I have not even heard of nevermind knowing where they originate. My code is:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class MyBaseConverter extends JFrame implements ActionListener 
{
	private JLabel lblNumber,lblBase,lblAnswer;
	private JTextField txtNumber,txtBase;
	private JPanel pCentre;
	private JComboBox cmbBase;
	private JButton btnConvert;
	private int remainder;
	private CharacterStack start,current;
	private String ans;
	
	
	MyBaseConverter()
	{
		Container c = getContentPane();
		c.setBackground(Color.LIGHT_GRAY);
		
		pCentre = new JPanel();
		pCentre.setBackground(Color.GRAY);
				
		lblNumber = new JLabel("Please Enter Integer");
		lblNumber.setFont(new Font("Serif",Font.BOLD,14));
		
		txtNumber = new JTextField();
		txtNumber.setColumns(4);
		txtNumber.setFont(new Font("Serif",Font.BOLD,14));
		
		String [] nums ={"2","3","4","5","6","7","8","9","11","12","13","14","15","16","17","18","19","20"};
		
		lblBase = new JLabel("Please Enter New Base");
		lblBase.setFont(new Font("Serif",Font.BOLD,14));
		
		txtBase = new JTextField();
		txtBase.setColumns(4);
		txtBase.setFont(new Font("Serif",Font.BOLD,14));
		
		btnConvert = new JButton("Convert");
		btnConvert.setFont(new Font("Serif",Font.BOLD,14));
		btnConvert.addActionListener(this);
		
		lblAnswer = new JLabel("");
		lblAnswer.setFont(new Font("Serif",Font.BOLD,14));
		lblAnswer.setBackground(Color.WHITE);
		
		pCentre.add(lblNumber);
		pCentre.add(txtNumber);
		pCentre.add(lblBase);
		pCentre.add(txtBase);
		pCentre.add(btnConvert);
		pCentre.add(lblAnswer);
		c.add(pCentre);
	}
	
	
	public void actionPerformed(ActionEvent e)
	{	
		if(e.getSource() == btnConvert)
		{
			try
			{
				int no = Integer.parseInt(txtNumber.getText().trim());
				int bs = Integer.parseInt(txtBase.getText().trim());
				char filler;
				
				start = null;
				
				while(no!=0)
				{	
					remainder = (no%2);
					filler = letter(remainder);
					current = new CharacterStack(filler);
					
					if (start == null)
						start=current;
					else
					{
						current.setLink(start);
						start = current;
					}
					
					no = no/2;
				}
				while ( current != null)
				{	String ans="";
				
					ans += ""+ current.getCh();
					current = current.getLink();
					
				}
				lblAnswer.setText(ans);
								
			}
			catch(NumberFormatException ex)
			{
				lblAnswer.setText("Both Numbers Must Be Numeric");
			}
			
		}
	
	}//End of ActionPerformed
	
	public static char letter(int rem)
	{	
		char c;
		
		if(rem < 10)
			return (char) rem; 
		else		
			switch(rem)
			{	
				case 10 : c = 'A';
				case 11 : c = 'B';
				case 12 : c = 'C';
				case 13 : c = 'D';
				case 14 : c = 'E';
				case 15 : c = 'F';
				case 16 : c = 'G';
				case 17 : c = 'H';
				case 18 : c = 'I';
				case 19 : c = 'J';
		}
		
		return c;
	}
	
	
	public static void main (String args[])
	{	
		MyBaseConverter mbc = new MyBaseConverter();
		mbc.setSize(600,400);
		//mbc.setLocation(0,0);
		mbc.setTitle("My Number Base Converter");
		mbc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		mbc.setVisible(true);
	}
	
}//End of Class
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Dec 29 2006
Added on Dec 1 2006
21 comments
569 views