Convert it to Visual Basic 6.0

Java program to Visual Basic

Page 1 of 1

3 Replies - 4525 Views - Last Post: 27 September 2008 - 01:54 AM Rate Topic: -----

#1 agentzero  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 6
  • Joined: 19-July 08

Convert it to Visual Basic 6.0

Post icon  Posted 22 September 2008 - 10:52 PM

Please help me....

//Author: ^-^/> Agent Zero ^-^/>
//The GUI that the user interacts with
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class subnetCalc extends JPanel implements ActionListener, KeyListener, FocusListener
{
	
	private JButton cmdCalculate;
	private JTextField[] txtIP, txtSub;
	private JLabel lblBase, lblCalculate, lblIP, lblSub, lblNetwork, lblHost;
	private JRadioButton radDec, radBin;
	private ButtonGroup grpBase;
		
	private JPanel panAnswerArea, panNorthArea, panBase, panAddressGrid, panIP, panSub, panButton;
	private final Color clrBackground = new Color(75,141,221);
	private final Color clrForeground = new Color(255,255,255);

	private subnetCalcInterface engine;
	
	public static void main(String[] args)
	{
		
		JFrame.setDefaultLookAndFeelDecorated(true);

        JFrame frame = new JFrame("SubNet Calc V1"); //Title
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        JComponent paneMain = new subnetCalc();
        paneMain.setOpaque(true);
		paneMain.setPreferredSize(new Dimension(420, 210));
        frame.setContentPane(paneMain);
                
        frame.pack();
        frame.setVisible(true);
        
    }
	
	public subnetCalc ()
	{
		
		super.setLayout(new BorderLayout());
		engine = new subnetCalcInterface(); //The interface links the GUI to the engine
		
		cmdCalculate = new JButton("Calculate");
		cmdCalculate.addActionListener(this);
		
		txtIP = new JTextField[4];
		txtSub = new JTextField[4];
		
		lblIP = new JLabel("IP address: ");
		lblSub = new JLabel("Subnet mask: ");
		
		panIP = new JPanel();
		panSub = new JPanel();
		
		panIP.add(lblIP);
		panSub.add(lblSub);
		
		for (int i = 0; i < 4; i++)
		{
			
			txtIP[i] = new JTextField("0", 2);
			txtSub[i] = new JTextField("0", 2);
			
			txtIP[i].addKeyListener(this);
			txtSub[i].addKeyListener(this);
			//Each time you select a new txt box, all the contents will be selected
			txtIP[i].addFocusListener(this);
			txtSub[i].addFocusListener(this);
			
			panIP.add(txtIP[i]);
			panSub.add(txtSub[i]);
			
			if (i != 3) //If not last section, put a decimal place separator
			{
				
				panIP.add(makeLblDot());
				panSub.add(makeLblDot());
				
			}
			
		}
		
		lblBase = new JLabel("Base System: ", JLabel.RIGHT);
		lblCalculate = new JLabel("Calculate Network and Host parts: ", JLabel.RIGHT);
		lblNetwork = new JLabel("Network address: ", JLabel.CENTER);
		lblHost = new JLabel("Host address: ", JLabel.CENTER);
		
		radDec = new JRadioButton("Decimal", true);
		radBin = new JRadioButton("Binary", false);
		
		radDec.addActionListener(this);
		radBin.addActionListener(this);
		
		grpBase = new ButtonGroup();
		grpBase.add(radDec);
		grpBase.add(radBin);
		
		panAnswerArea = new JPanel(new BorderLayout()); //Stores the network and host addresses
		panNorthArea = new JPanel(new BorderLayout()); //North has the base radio buttons, the south has the IP/Subnet
		panBase = new JPanel(); //Stores the radio buttons
		panAddressGrid = new JPanel(new GridLayout(3,1)); //Stores the IP, subnet address and the calculate button
		panButton = new JPanel(); //Stores the calculate button
		
		this.add(panAnswerArea, BorderLayout.SOUTH);
			panAnswerArea.add(lblNetwork, BorderLayout.NORTH);
			panAnswerArea.add(lblHost, BorderLayout.SOUTH);
		this.add(panNorthArea, BorderLayout.NORTH);
			panNorthArea.add(panBase, BorderLayout.NORTH);
				panBase.add(lblBase);
				panBase.add(radDec);
				panBase.add(radBin);
			panNorthArea.add(panAddressGrid, BorderLayout.SOUTH);
				panAddressGrid.add(panIP);
				panAddressGrid.add(panSub);
				panAddressGrid.add(panButton);
					panButton.add(lblCalculate);
					panButton.add(cmdCalculate);
					
		this.setBackground(clrBackground);
		panAnswerArea.setBackground(clrBackground);
		panNorthArea.setBackground(clrBackground);
		panBase.setBackground(clrBackground);
		panAddressGrid.setBackground(clrBackground);
		panIP.setBackground(clrBackground);
		panSub.setBackground(clrBackground);
		panButton.setBackground(clrBackground);
		radDec.setBackground(clrBackground);
		radBin.setBackground(clrBackground);
		
		lblNetwork.setForeground(clrForeground);
		lblHost.setForeground(clrForeground);
		lblBase.setForeground(clrForeground);
		lblCalculate.setForeground(clrForeground);
		lblIP.setForeground(clrForeground);
		lblSub.setForeground(clrForeground);
		
	}
	
	private JLabel makeLblDot () //Creates a label decimal point, much better then creating global labels
	{
		
		JLabel lblDot = new JLabel(".");
		lblDot.setForeground(clrForeground);
		return lblDot;
		
	}
	
	public void actionPerformed (ActionEvent e)
	{		
		
		String[] strIP = new String[4], strSub = new String[4], strNetwork = new String[4], strHost = new String[4];
		
		lblCalculate.setText("Calculate Network and Host parts: "); //Resets the message if a subnet mask error occured
		
		for (int section = 0; section < 4; section++)
		{
			
			strIP[section] = "";
			strSub[section] = "";
			
			if (txtIP[section].getText().equals(""))
			{
				txtIP[section].setText("0");
			}
			
			if (txtSub[section].getText().equals(""))
			{
				txtSub[section].setText("0");
			}
			
			strIP[section] = txtIP[section].getText();
			strSub[section] = txtSub[section].getText();
			
		}
		
		engine.setAddresses(strIP, strSub); //Sends the new IP and sub address

		if (e.getSource() == radDec || e.getSource() == radBin)
		{
			engine.setUsingDec(radDec.isSelected()); //will just change the base system, not calculate a new network and host
		}
		else
		{
			
			if (!engine.calculate()) //Errors occur if the addresses sent are invalid
			{
				lblCalculate.setText("Error, ilegal subnet mask");
			}
			
		}
		
		strIP = engine.getIPAddress();
		strSub = engine.getSubAddress();
		strNetwork = engine.getNetworkAddress();
		strHost = engine.getHostAddress();
		
		lblNetwork.setText("Network address: ");
		lblHost.setText("Host address: ");
		
		for (int section = 0; section < 4; section++)
		{
			
			if (engine.isUsingDec()) //Changes the size of the txt boxes depending on which system you are using
			{
				
				txtIP[section].setColumns(2);
				txtSub[section].setColumns(2);
				
			}
			else
			{
				
				txtIP[section].setColumns(6);
				txtSub[section].setColumns(6);
				
			}
			
			txtIP[section].setText(strIP[section]);
			txtSub[section].setText(strSub[section]);
			
			lblNetwork.setText(lblNetwork.getText() + strNetwork[section]);
			lblHost.setText(lblHost.getText() + strHost[section]);
			
			if (section != 3)
			{
				
				lblNetwork.setText(lblNetwork.getText() + ".");
				lblHost.setText(lblHost.getText() + ".");
				
			}
			
		}
		
	}
	
	public void keyPressed (KeyEvent e)
	{
	}
	
	public void keyTyped (KeyEvent e)
	{		
				
		JTextField txtTemp = (JTextField)e.getSource();
		char c = e.getKeyChar();
		boolean removeKey = false;
		String strTemp = txtTemp.getText();
		int startIndex = txtTemp.getSelectionend(); //Gets the point the key was typed at
		
		if (c == '.' || !Character.isDigit©) //If not a number
		{
			removeKey = true;
		}
		else
		{
			
			if (engine.isUsingDec()) //3 digit limit, input 0 - 9, number from 0 - 255
			{
				
				if (strTemp.length() == 3 && !(c == KeyEvent.VK_BACK_SPACE || c == KeyEvent.VK_DELETE))
				{
					removeKey = true;
				}
				else
				{
					
					String part1 = "", part2 = "";
					
					if (startIndex > 0) //If the index of the cursor is gt then 0
					{
						part1 = strTemp.substring(0, startIndex);
					}
					
					if (startIndex < (strTemp.length() - 1)) //If the index of the cursor is lt then the last char
					{
						part2 = strTemp.substring(startIndex, (strTemp.length() - 1));
					}
					
					int newNum = Integer.parseInt(part1 + c + part2); //Creates the number to test if it is legal

					if (newNum > 255) //If gt then 255, don't allow the number
					{
						removeKey = true;
					}

				}
				
			}
			else //8 digit limit, input 0 - 1
			{
				
				if (!(c == '0' || c == '1' || c == KeyEvent.VK_BACK_SPACE || c == KeyEvent.VK_DELETE))
				{
					removeKey = true;
				}
				else if (strTemp.length() == 8 && !(c == KeyEvent.VK_BACK_SPACE || c == KeyEvent.VK_DELETE))
				{
					removeKey = true;
				}
				
			}
			
		}
		
		if (removeKey)
		{
			e.consume();
		}
		
	}
	
	public void keyReleased (KeyEvent e)
	{
	}
	
	public void focusGained (FocusEvent e)
	{
		
		JTextField txtTemp = (JTextField)e.getSource();
		txtTemp.selectAll();
		
	}
	
	public void focusLost (FocusEvent e)
	{
	}
	
}


=================================================

//Author: ^-^/> Agent Zero ^-^/>
//Does all the calculations
public class subnetCalcEngine
{
	
	protected String[] strNetworkAddress = {"0","0","0","0"};
	protected String[] strHostAddress = {"0","0","0","0"};
	protected String[] strIPAddress = {"0","0","0","0"};
	protected String[] strSubAddress = {"0","0","0","0"};
	protected boolean usingDec = true;
	
	public void subnetCalcEngine ()
	{
	}
	
	protected String[] format (String[] address, boolean setAddress)
	{
			
		if (setAddress)
		{

			if (!usingDec)
			{
				
				for (int section = 0; section < 4; section++)
				{
					address[section] = convertBinToDec(address[section]);
				}
				
			}
			
		}
		else
		{
			
			if (!usingDec)
			{
				
				for (int section = 0; section < 4; section++)
				{
					address[section] = convertDecToBin(address[section]);
				}
				
			}
			
		}
		
		return address;
		
	}			
	
	private boolean checkSubAddress () //Checks the subnet address is legal
	{
		
		boolean subnetEndReached = false;
		int decNum = 0;
		
		for (int section = 0; section < 4; section++)
		{
			
			decNum = Integer.parseInt(strSubAddress[section]);
			
			if (subnetEndReached && decNum != 0)
			{
				return false;
			}
			else
			{
	
				switch (decNum)
				{
					
					case 0:
					case 128:
					case 192:
					case 224:
					case 240:
					case 248:
					case 252:
					case 254:	subnetEndReached = true;
								break;
					case 255: 	break;
					default: return false;
					
				}
				
			}
			
		}
		
		return true;		
		
	}
	
	protected boolean performCalculation () //Calculates the network and host addresses
	{
		
		if (!checkSubAddress())
		{
			return false;
		}
		else
		{		
			
			String[] strIP = new String[4];
			String[] strSub = new String[4];
			
			for (int section = 0; section < 4; section++)
			{
				
				strIP[section] = convertDecToBin(strIPAddress[section]);
				strSub[section] = convertDecToBin(strSubAddress[section]);
				
			}
			
			strIP = addPadding(strIP);
			strSub = addPadding(strSub);
			
			String[] strNetwork = new String[4];
			String[] strHost = new String[4];
			
			boolean endOfNetwork = false;
			
			for (int section = 0; section < 4; section++)
			{
				
				strNetwork[section] = "";
				strHost[section] = "";
			
				for (int bit = 0; bit < 8; bit++)
				{
					
					if (endOfNetwork)
					{
						
						strNetwork[section] += "0";
						strHost[section] += strIP[section].charAt(bit);
						
					}
					else
					{
					
						if (strSub[section].charAt(bit) == '1')
						{
							
							strNetwork[section] += strIP[section].charAt(bit);
							strHost[section] += "0";
							
						}
						else
						{
							
							endOfNetwork = true;
							strNetwork[section] += "0";
							strHost[section] += strIP[section].charAt(bit);
							
						}
						
					}					
					
				}

			}
			
			for (int section = 0; section < 4; section++)
			{
				
				strNetworkAddress[section] = convertBinToDec(strNetwork[section]);
				strHostAddress[section] = convertBinToDec(strHost[section]);
				
			}

			return true;
			
		}
		
	}
	
	private String[] addPadding (String[] strCurrentAddress)
	{
		
		for (int section = 0; section < 4; section++)
		{			
			strCurrentAddress[section] = addPadding2(strCurrentAddress[section]);			
		}
		
		return strCurrentAddress;
		
	}
	
	private String addPadding2 (String strCurrentAddressSection)
	{
		
		for (int padding = (8 - strCurrentAddressSection.length()); padding > 0; padding--)
		{
			strCurrentAddressSection = "0" + strCurrentAddressSection;
		}
		
		return strCurrentAddressSection;
		
	}
	
	private String convertDecToBin (String strDec)
	{
		
		int decNum = Integer.parseInt(strDec), length = 0;
		String strBinNum = "", answer = "";
		
		while (decNum != 0)
		{
			
			if (decNum > 1)
			{
				
				strBinNum += Integer.toString(decNum % 2);
				decNum /= 2;
				
			}
			else
			{
				
				strBinNum += Integer.toString(decNum);
				decNum = 0;
				
			}
			
		}

		length = strBinNum.length();		

		for (int padding = (8 - length); padding > 0; padding--)
		{
			answer += "0";
		}
		
		for (int i = length; i > 0; i--)
		{
			answer += strBinNum.charAt(i - 1);
		}
		
		return answer;
		
	}
	
	private String convertBinToDec (String strBin)
	{		
		
		for (int padding = (8 - strBin.length()); padding > 0; padding--)
		{
			strBin = "0" + strBin;
		}
		
		int counter = 1, decNum = 0;
		
		for (int bit = 7; bit >= 0; bit--)
		{
			
			if (strBin.charAt(bit) == '1')
			{
				decNum += counter;
			}

			counter *= 2;
			
		}
		
		return "" + decNum;
		
	}		
	
}

================================================

//Author: ^-^/> Agent Zero ^-^/>
//Layer between GUI and engine, translates between the user and the engine code
public class subnetCalcInterface extends subnetCalcEngine
{
	
	public void subnetCalcEngine ()
	{
	}
	
	public void setAddresses (String[] strIP, String[] strSub)
	{
		
		strIPAddress = format(strIP, true);
		strSubAddress = format(strSub, true);
		strNetworkAddress = format(strNetworkAddress, true);
		strHostAddress = format(strHostAddress, true);
		
	}
	
	public String[] getIPAddress ()
	{
		return format(strIPAddress, false);		
	}
	
	public String[] getSubAddress ()
	{
		return format(strSubAddress, false);
	}
	
	public String[] getNetworkAddress ()
	{
		return format(strNetworkAddress, false);
	}
	
	public String[] getHostAddress ()
	{
		return format(strHostAddress, false);
	}
	
	public boolean calculate ()
	{
		return performCalculation();
	}				
	
	public void setUsingDec (boolean usingDec)
	{
		this.usingDec = usingDec;
	}
	
	public boolean isUsingDec ()
	{
		return usingDec;
	}
	
}



Mod Edit: Please use code tags when posting your code. Code tags are used like so => :code:

Thanks,
PsychoCoder :)

Is This A Good Question/Topic? 0
  • +

Replies To: Convert it to Visual Basic 6.0

#2 PsychoCoder  Icon User is offline

  • Google.Sucks.Init(true);
  • member icon

Reputation: 1641
  • View blog
  • Posts: 19,853
  • Joined: 26-July 07

Re: Convert it to Visual Basic 6.0

Posted 22 September 2008 - 11:07 PM

[rules][/rules]

We're not going to convert this for you, you're going to have to do the work and we'll help you along the way, but not without showing the code you're converted already and are having problems with :)
Was This Post Helpful? 0
  • +
  • -

#3 agentzero  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 6
  • Joined: 19-July 08

Re: Convert it to Visual Basic 6.0

Posted 22 September 2008 - 11:13 PM

I dont know to convert it to Visual Basic....Please help me on it. or can you give me a converter to convert Java programs to Visual Basic programs.
please..............:smile|::smile:
Was This Post Helpful? 0
  • +
  • -

#4 akhileshbc  Icon User is offline

  • D.I.C Head
  • member icon

Reputation: 9
  • View blog
  • Posts: 179
  • Joined: 27-September 08

Re: Convert it to Visual Basic 6.0

Posted 27 September 2008 - 01:54 AM

If you tell me what the code is trying to do, then I may be able to tell you the vb version of it.... Because I don't know javascript, only VB ...:)
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1