CALCULATOR by USENG JAVA

on 1:11 PM

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.KeyStroke;

public class Calculator extends JFrame implements ActionListener{
// Variables
final int MAX_INPUT_LENGTH = 20;
final int INPUT_MODE = 0;
final int RESULT_MODE = 1;
final int ERROR_MODE = 2;
int displayMode;

boolean clearOnNextDigit, percent;
double lastNumber;
String lastOperator;

private JMenu jmenuFile, jmenuHelp;
private JMenuItem jmenuitemExit, jmenuitemAbout;

private JLabel jlbOutput;
private JButton jbnButtons[];
private JPanel jplMaster, jplBackSpace, jplControl;

/*
* Font(String name, int style, int size)
Creates a new Font from the specified name, style and point size.
*/

Font f12 = new Font("Times New Roman", 0, 12);
Font f121 = new Font("Times New Roman", 1, 12);

// Constructor
public Calculator()
{
/* Set Up the JMenuBar.
* Have Provided All JMenu's with Mnemonics
* Have Provided some JMenuItem components with Keyboard Accelerators
*/

jmenuFile = new JMenu("File");
jmenuFile.setFont(f121);
jmenuFile.setMnemonic(KeyEvent.VK_F);

jmenuitemExit = new JMenuItem("Exit");
jmenuitemExit.setFont(f12);
jmenuitemExit.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_X,
ActionEvent.CTRL_MASK));
jmenuFile.add(jmenuitemExit);

jmenuHelp = new JMenu("Help");
jmenuHelp.setFont(f121);
jmenuHelp.setMnemonic(KeyEvent.VK_H);

jmenuitemAbout = new JMenuItem("About Calculator");
jmenuitemAbout.setFont(f12);
jmenuHelp.add(jmenuitemAbout);

JMenuBar mb = new JMenuBar();
mb.add(jmenuFile);
mb.add(jmenuHelp);
setJMenuBar(mb);

//Set frame layout manager

setBackground(Color.gray);

jplMaster = new JPanel();

jlbOutput = new JLabel("0");
jlbOutput.setHorizontalTextPosition(JLabel.RIGHT);
jlbOutput.setBackground(Color.WHITE);
jlbOutput.setOpaque(true);

// Add components to frame
getContentPane().add(jlbOutput, BorderLayout.NORTH);

jbnButtons = new JButton[23];
// GridLayout(int rows, int cols, int hgap, int vgap)

JPanel jplButtons = new JPanel(); // container for Jbuttons

// Create numeric Jbuttons
for (int i=0; i<=9; i++)
{
// set each Jbutton label to the value of index
jbnButtons[i] = new JButton(String.valueOf(i));
}

// Create operator Jbuttons
jbnButtons[10] = new JButton("+/-");
jbnButtons[11] = new JButton(".");
jbnButtons[12] = new JButton("=");
jbnButtons[13] = new JButton("/");
jbnButtons[14] = new JButton("*");
jbnButtons[15] = new JButton("-");
jbnButtons[16] = new JButton("+");
jbnButtons[17] = new JButton("sqrt");
jbnButtons[18] = new JButton("1/x");
jbnButtons[19] = new JButton("%");

jplBackSpace = new JPanel();
jplBackSpace.setLayout(new GridLayout(1, 1, 2, 2));

jbnButtons[20] = new JButton("Backspace");
jplBackSpace.add(jbnButtons[20]);

jplControl = new JPanel();
jplControl.setLayout(new GridLayout(1, 2, 2 ,2));

jbnButtons[21] = new JButton(" CE ");
jbnButtons[22] = new JButton("C");

jplControl.add(jbnButtons[21]);
jplControl.add(jbnButtons[22]);

// Setting all Numbered JButton's to Blue. The rest to Red
for (int i=0; i jbnButtons[i].setFont(f12);

if (i<10)
jbnButtons[i].setForeground(Color.blue);

else
jbnButtons[i].setForeground(Color.red);
}

// Set panel layout manager for a 4 by 5 grid
jplButtons.setLayout(new GridLayout(4, 5, 2, 2));

//Add buttons to keypad panel starting at top left
// First row
for(int i=7; i<=9; i++) {
jplButtons.add(jbnButtons[i]);
}

// add button / and sqrt
jplButtons.add(jbnButtons[13]);
jplButtons.add(jbnButtons[17]);

// Second row
for(int i=4; i<=6; i++)
{
jplButtons.add(jbnButtons[i]);
}

// add button * and x^2
jplButtons.add(jbnButtons[14]);
jplButtons.add(jbnButtons[18]);

// Third row
for( int i=1; i<=3; i++)
{
jplButtons.add(jbnButtons[i]);
}

//adds button - and %
jplButtons.add(jbnButtons[15]);
jplButtons.add(jbnButtons[19]);

//Fourth Row
// add 0, +/-, ., +, and =
jplButtons.add(jbnButtons[0]);
jplButtons.add(jbnButtons[10]);
jplButtons.add(jbnButtons[11]);
jplButtons.add(jbnButtons[16]);
jplButtons.add(jbnButtons[12]);

jplMaster.setLayout(new BorderLayout());
jplMaster.add(jplBackSpace, BorderLayout.WEST);
jplMaster.add(jplControl, BorderLayout.EAST);
jplMaster.add(jplButtons, BorderLayout.SOUTH);

// Add components to frame
getContentPane().add(jplMaster, BorderLayout.SOUTH);
requestFocus();

//activate ActionListener
for (int i=0; i jbnButtons[i].addActionListener(this);
}

jmenuitemAbout.addActionListener(this);
jmenuitemExit.addActionListener(this);

clearAll();

//add WindowListener for closing frame and ending program
addWindowListener(new WindowAdapter() {

public void windowClosed(WindowEvent e)
{
System.exit(0);
}
}
);
} //End of Contructor Calculator

// Perform action
public void actionPerformed(ActionEvent e){
double result = 0;

if(e.getSource() == jmenuitemAbout){
JDialog dlgAbout = new CustomABOUTDialog(this,
"About Java Swing Calculator", true);
dlgAbout.setVisible(true);
}else if(e.getSource() == jmenuitemExit){
System.exit(0);
}

// Search for the button pressed until end of array or key found
for (int i=0; i {
if(e.getSource() == jbnButtons[i])
{
switch(i)
{
case 0:
addDigitToDisplay(i);
break;

case 1:
addDigitToDisplay(i);
break;

case 2:
addDigitToDisplay(i);
break;

case 3:
addDigitToDisplay(i);
break;

case 4:
addDigitToDisplay(i);
break;

case 5:
addDigitToDisplay(i);
break;

case 6:
addDigitToDisplay(i);
break;

case 7:
addDigitToDisplay(i);
break;

case 8:
addDigitToDisplay(i);
break;

case 9:
addDigitToDisplay(i);
break;

case 10: // +/-
processSignChange();
break;

case 11: // decimal point
addDecimalPoint();
break;

case 12: // =
processEquals();
break;

case 13: // divide
processOperator("/");
break;

case 14: // *
processOperator("*");
break;

case 15: // -
processOperator("-");
break;

case 16: // +
processOperator("+");
break;

case 17: // sqrt
if (displayMode != ERROR_MODE)
{
try
{
if (getDisplayString().indexOf("-") == 0)
displayError("Invalid input for function!");

result = Math.sqrt(getNumberInDisplay());
displayResult(result);
}

catch(Exception ex)
{
displayError("Invalid input for function!");
displayMode = ERROR_MODE;
}
}
break;

case 18: // 1/x
if (displayMode != ERROR_MODE){
try
{
if (getNumberInDisplay() == 0)
displayError("Cannot divide by zero!");

result = 1 / getNumberInDisplay();
displayResult(result);
}

catch(Exception ex) {
displayError("Cannot divide by zero!");
displayMode = ERROR_MODE;
}
}
break;

case 19: // %
if (displayMode != ERROR_MODE){
try {
result = getNumberInDisplay() / 100;
displayResult(result);
}

catch(Exception ex) {
displayError("Invalid input for function!");
displayMode = ERROR_MODE;
}
}
break;

case 20: // backspace
if (displayMode != ERROR_MODE){
setDisplayString(getDisplayString().substring(0,
getDisplayString().length() - 1));

if (getDisplayString().length() < 1)
setDisplayString("0");
}
break;

case 21: // CE
clearExisting();
break;

case 22: // C
clearAll();
break;
}
}
}
}

void setDisplayString(String s){
jlbOutput.setText(s);
}

String getDisplayString (){
return jlbOutput.getText();
}

void addDigitToDisplay(int digit){
if (clearOnNextDigit)
setDisplayString("");

String inputString = getDisplayString();

if (inputString.indexOf("0") == 0){
inputString = inputString.substring(1);
}

if ((!inputString.equals("0") || digit > 0)
&& inputString.length() < MAX_INPUT_LENGTH){
setDisplayString(inputString + digit);
}


displayMode = INPUT_MODE;
clearOnNextDigit = false;
}

void addDecimalPoint(){
displayMode = INPUT_MODE;

if (clearOnNextDigit)
setDisplayString("");

String inputString = getDisplayString();

// If the input string already contains a decimal point, don't
// do anything to it.
if (inputString.indexOf(".") < 0)
setDisplayString(new String(inputString + "."));
}

void processSignChange(){
if (displayMode == INPUT_MODE)
{
String input = getDisplayString();

if (input.length() > 0 && !input.equals("0"))
{
if (input.indexOf("-") == 0)
setDisplayString(input.substring(1));

else
setDisplayString("-" + input);
}

}

else if (displayMode == RESULT_MODE)
{
double numberInDisplay = getNumberInDisplay();

if (numberInDisplay != 0)
displayResult(-numberInDisplay);
}
}

void clearAll() {
setDisplayString("0");
lastOperator = "0";
lastNumber = 0;
displayMode = INPUT_MODE;
clearOnNextDigit = true;
}

void clearExisting(){
setDisplayString("0");
clearOnNextDigit = true;
displayMode = INPUT_MODE;
}

double getNumberInDisplay() {
String input = jlbOutput.getText();
return Double.parseDouble(input);
}

void processOperator(String op) {
if (displayMode != ERROR_MODE)
{
double numberInDisplay = getNumberInDisplay();

if (!lastOperator.equals("0"))
{
try
{
double result = processLastOperator();
displayResult(result);
lastNumber = result;
}

catch (DivideByZeroException e)
{
}
}

else
{
lastNumber = numberInDisplay;
}

clearOnNextDigit = true;
lastOperator = op;
}
}

void processEquals(){
double result = 0;

if (displayMode != ERROR_MODE){
try
{
result = processLastOperator();
displayResult(result);
}

catch (DivideByZeroException e) {
displayError("Cannot divide by zero!");
}

lastOperator = "0";
}
}

double processLastOperator() throws DivideByZeroException {
double result = 0;
double numberInDisplay = getNumberInDisplay();

if (lastOperator.equals("/"))
{
if (numberInDisplay == 0)
throw (new DivideByZeroException());

result = lastNumber / numberInDisplay;
}

if (lastOperator.equals("*"))
result = lastNumber * numberInDisplay;

if (lastOperator.equals("-"))
result = lastNumber - numberInDisplay;

if (lastOperator.equals("+"))
result = lastNumber + numberInDisplay;

return result;
}

void displayResult(double result){
setDisplayString(Double.toString(result));
lastNumber = result;
displayMode = RESULT_MODE;
clearOnNextDigit = true;
}

void displayError(String errorMessage){
setDisplayString(errorMessage);
lastNumber = 0;
displayMode = ERROR_MODE;
clearOnNextDigit = true;
}

public static void main(String args[]) {
Calculator calci = new Calculator();
Container contentPane = calci.getContentPane();
// contentPane.setLayout(new BorderLayout());
calci.setTitle("Java Swing Calculator");
calci.setSize(241, 217);
calci.pack();
calci.setLocation(400, 250);
calci.setVisible(true);
calci.setResizable(false);
}

} //End of Swing Calculator Class.

class DivideByZeroException extends Exception{
public DivideByZeroException()
{
super();
}

public DivideByZeroException(String s)
{
super(s);
}
}

class CustomABOUTDialog extends JDialog implements ActionListener {
JButton jbnOk;

CustomABOUTDialog(JFrame parent, String title, boolean modal){
super(parent, title, modal);
setBackground(Color.black);

JPanel p1 = new JPanel(new FlowLayout(FlowLayout.CENTER));

StringBuffer text = new StringBuffer();
text.append("Calculator Information\n\n");
text.append("Developer: Hemanth\n");
text.append("Version: 1.0");

JTextArea jtAreaAbout = new JTextArea(5, 21);
jtAreaAbout.setText(text.toString());
jtAreaAbout.setFont(new Font("Times New Roman", 1, 13));
jtAreaAbout.setEditable(false);

p1.add(jtAreaAbout);
p1.setBackground(Color.red);
getContentPane().add(p1, BorderLayout.CENTER);

JPanel p2 = new JPanel(new FlowLayout(FlowLayout.CENTER));
jbnOk = new JButton(" OK ");
jbnOk.addActionListener(this);

p2.add(jbnOk);
getContentPane().add(p2, BorderLayout.SOUTH);

setLocation(408, 270);
setResizable(false);

addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e)
{
Window aboutDialog = e.getWindow();
aboutDialog.dispose();
}
}
);

pack();
}

public void actionPerformed(ActionEvent e)
{
if(e.getSource() == jbnOk) {
this.dispose();
}
}

}


JDBC program

on 1:45 PM

Appendix B: Example JDBC Programs

B.1 Using SELECT

import java.net.URL;
import java.sql.*;

class Select {

public static void main(String argv[]) {
try {
// Create a URL specifying an ODBC data source name.
String url = "jdbc:odbc:wombat";

// Connect to the database at that URL.
Connection con = DriverManager.getConnection(url, "kgh", "");

// Execute a SELECT statement
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c, d, key FROM Table1");

// Step through the result rows.
System.out.println("Got results:");
while (rs.next()) {
// get the values from the current row:
int a = rs.getInt(1);
BigDecimal b = rs.getBigDecimal(2);
char c[] = rs.getString(3).tocharArray();
boolean d = rs.getBoolean(4);
String key = rs.getString(5);

// Now print out the results:
System.out.print(" key=" + key);
System.out.print(" a=" + a);
System.out.print(" b=" + b);
System.out.print(" c=");
for (int i = 0; i < c.length; i++) {
System.out.print(c[i]);
}
System.out.print(" d=" + d);
System.out.print("\n");
}

stmt.close();
con.close();
} catch (java.lang.Exception ex) {
ex.printStackTrace();
}
}
}

B.2 Using UPDATE


// Update a couple of rows in a database.

import java.net.URL;
import java.sql.*;

class Update {

public static void main(String argv[]) {
try {
// Create a URL specifying an ODBC data source name.
String url = "jdbc:odbc:wombat";

// Connect to the database at that URL.
Connection con = DriverManager.getConnection(url, "kgh", "");

// Create a prepared statement to update the "a" field of a
// row in the "Table1" table.
// The prepared statement takes two parameters.
PreparedStatement stmt = con.prepareStatement(
"UPDATE Table1 SET a = ? WHERE key = ?");

// First use the prepared statement to update
// the "count" row to 34.
stmt.setInt(1, 34);
stmt.setString(2, "count");
stmt.executeUpdate();
System.out.println("Updated \"count\" row OK.");

// Now use the same prepared statement to update the
// "mirror" field.
// We rebind parameter 2, but reuse the other parameter.
stmt.setString(2, "mirror");
stmt.executeUpdate();
System.out.println("Updated \"mirror\" row OK.");

stmt.close();
con.close();

} catch (java.lang.Exception ex) {
ex.printStackTrace();
}
}
}

Java Swing Examples

on 12:03 PM

Below is a java swing code for the traditional Hello World program.

Basically, the idea behind this Hello World program is to learn how to create a java program, compile and run it. To create your java source code you can use any editor( Text pad/Edit plus are my favorites) or you can use an IDE like Eclipse.

import javax.swing.JFrame;
import javax.swing.JLabel;

//import statements
//Check if window closes automatically. Otherwise add suitable code
public class HelloWorldFrame extends JFrame {

public static void main(String args[]) {
new HelloWorldFrame();
}
HelloWorldFrame() {
JLabel jlbHelloWorld = new JLabel("Hello World");
add(jlbHelloWorld);
this.setSize(100, 100);
// pack();
setVisible(true);
}
}
Output

Java Swing class hierarchy

on 12:03 PM

Java Swing class hierarchy

The class JComponent, descended directly from Container, is the root class for most of Swing’s user interface components.



Swing contains components that you’ll use to build a GUI. I am listing you some of the commonly used Swing components. To learn and understand these swing programs, AWT Programming knowledge is not required.

SWING IN JAVA

on 12:02 PM

What is Swings in java ?

A part of The JFC
Swing Java consists of
Look and feel
Accessibility
Java 2D
Drag and Drop, etc
Compiling & running programs
‘javac ’ && ‘java ’
Or JCreator / IDE

if you do not explicitly add a GUI component to a container, the GUI component will not be displayed when the container appears on the screen.
Swing, which is an extension library to the AWT, includes new and improved components that enhance the look and functionality of GUIs. Swing can be used to build Standalone swing gui Apps as well as Servlets and Applets. It employs a model/view design architecture. Swing is more portable and more flexible than AWT.

Swing Model/view design: The “view part” of the MV design is implemented with a component object and the UI object. The “model part” of the MV design is implemented by a model object and a change listener object.

Swing is built on top of AWT and is entirely written in Java, using AWT’s lightweight component support. In particular, unlike AWT, t he architecture of Swing components makes it easy to customize both their appearance and behavior. Components from AWT and Swing can be mixed, allowing you to add Swing support to existing AWT-based programs. For example, swing components such as JSlider, JButton and JCheckbox could be used in the same program with standard AWT labels, textfields and scrollbars. You could subclass the existing Swing UI, model, or change listener classes without having to reinvent the entire implementation. Swing also has the ability to replace these objects on-the-fly.

100% Java implementation of components
Pluggable Look & Feel
Lightweight components
Uses MVC Architecture
Model represents the data
View as a visual representation of the data
Controller takes input and translates it to changes in data
Three parts
Component set (subclasses of JComponent)
Support classes
Interfaces
In Swing, classes that represent GUI components have names beginning with the letter J. Some examples are JButton, JLabel, and JSlider. Altogether there are more than 250 new classes and 75 interfaces in Swing — twice as many as in AWT.

CALCULATOR

on 2:19 PM

import java.io.*;
import java.util.*;
public class calculator

{
public static void main(String[] args) throws IOException
{
BufferedReader keyboard = new BufferedReader (new InputStreamReader (System.in));
String input, input1, input2;
int num1, num2, answer;

System.out.println ("\t\t\tWelcome to the calculator!");
do
{
System.out.print ("\nWould you like to Multiply(m), Divide(d), Subtract(s), Add(a)?: ");
input = keyboard.readLine();
if (input.equals("m"))
{
System.out.print ("Please enter the first number!: ");
num1 = Integer.parseInt (input1 = keyboard.readLine());
System.out.print ("Please enter the second number!: ");
num2 = Integer.parseInt (input2 = keyboard.readLine());
answer = num1*num2;
System.out.print ("You chose to multiply."+"\t"+"The Product is: "+answer);
}
if (input.equals("d"))
{
System.out.print ("Please enter the first number!: ");
num1 = Integer.parseInt (input1 = keyboard.readLine());
System.out.print ("Please enter the second number!: ");
num2 = Integer.parseInt (input2 = keyboard.readLine());
answer = num1/num2;
System.out.print ("You chose to divide."+"\t"+"The Dividend is: "+answer);
}
if (input.equals("a"))
{
System.out.print ("Please enter the first number!: ");
num1 = Integer.parseInt (input1 = keyboard.readLine());
System.out.print ("Please enter the second number!: ");
num2 = Integer.parseInt (input2 = keyboard.readLine());
answer = num1+num2;
System.out.print ("You chose to add."+"\t"+"The Sum is: "+answer);
}
if (input.equals("s"))
{
System.out.print ("Please enter the first number!: ");
num1 = Integer.parseInt (input1 = keyboard.readLine());
System.out.print ("Please enter the second number!: ");
num2 = Integer.parseInt (input2 = keyboard.readLine());
answer = num1-num2;
System.out.print ("You chose to subtract."+"\t"+"The Diffrence is: "+answer);
}

System.out.print ("\nWould you like another calculation (y/n)?: ");
input = keyboard.readLine();
}
while(input.equals("y"));
if(input.equals("n"));
System.exit(0);
}
}

twodimensional.java

on 2:19 PM

import java.io.*;
class twodimensional
{
public static void main(String args[])
{
float b[][]=new float [4][5];
int i,j;
float k=0;
for(i=0;i<4;i++)
for(j=0;j<5;j++)
{
b[i][j]=k;
k++;
}
for(i=0;i<4;i++)
{
for(j=0;j<5;j++)
System.out.println(b[i][j]+"");
System.out.println();
}
}
}

fibonacci.java

on 2:15 PM

package com.gpt;


import javax.swing.JOptionPane;
/*
This program computes Fibonacci numbers using a recursive
method.
*/
public class Fibonacci
{
public static void main(String[] args)
{
String input = JOptionPane.showInputDialog("Enter n: ");
int n = Integer.parseInt(input);
for (int i = 1; i <= n; i++)
{
int f = fib(i);
System.out.println("fib(" + i + ") = " + f);
}
System.exit(0);
}
/**
Computes a Fibonacci number.
@param n an integer
@return the nth Fibonacci number
*/
public static int fib(int n)
{
if (n <= 2)
return 1;
else
return fib(n - 1) + fib(n - 2);
}
}

figure.java

on 2:14 PM

abstract class figure
{
double d1,d2;
figure(double x,double y)
{
d1=x;
d2=y;
}
public abstract double area ();
}
class rectangle extends figure
{
rectangle(double a,double b)
{
super (a,b);
}
public double area ()
{
System.out.println("area of the rectangle is");
return d1*d2;
}
}
class triangle extends figure
{
triangle (double p,double q)
{
super(p,q);
}
public double area()
{
System.out.println("area of the triangle");
return(d1*d2)/2;
}
public static void main(String args[])
{
//figure f= new figure();
rectangle r= new rectangle(10,20);
triangle t= new triangle (15,20);
figure ff;
ff=r;
ff.area();
ff=t;

}
}

studentdemo.java

on 2:09 PM

import java.io.*;
class student
{
int rollno;
string name;
long marks;
char grades;
void fill details()
{
roll no=121;
name='uzair';
marks=270;
grades='A';
}
void showdetails()
{
system.out.println("roll no:"=roll name);
system.out.println("name:"+name);
system.out.println("marks:"+marks);
system.out.println("grades of the students is grades");
}
}
class studentdemo
{
public static void main(string a[])
{
system.out.println("this is main menu");
{
studnet st = new student();
st.filldetails();
st.showdetails();
}
}