Java count all white space in String

Yesterday, before i go to sleep i tried to answer a simple question from a site. The question is about how to count all white space from String that input by a user. After a few time i failed, i found code below :

*********************************************************
COMPLETE SOURCE CODE FOR : CountAllWhitespaceInString.java
*********************************************************


import java.util.Scanner;

public class CountAllWhitespaceInString
{
public static void main(String[]args)
{
boolean a=true;
Scanner sc=new Scanner(System.in);

while(a)
{
System.out.println("Type EXIT to exit");
String b=sc.nextLine();
int whitespaceNumber=0;

if(!b.equalsIgnoreCase("exit"))
{
try
{
for(int i=0;i<=b.length()-1;i++)
{
char temp=b.charAt(i);
if(temp==' ')
{
whitespaceNumber++;
}
}
System.out.println("Whitespace number is : "+whitespaceNumber);
}
catch(Exception exception)
{
System.out.println("DON'T DO THAT");
}
}
else
{
a=false;
}
}
}
}


*********************************************************
JUST COMPILE AND EXECUTE IT
*********************************************************

Java reverse String and simplest palindrome checker

Today, i have learn something new and it's totally simple. Sometime when don't know about that, we will use our way that take a time to complete a simple task. What i learn today is, how to reverse String. The easiest way to reverse a String for example from "i love you" to "uoy evol i" is using method reverse() in StringBuffer class. It is also very useful especially when you want to create a palindrome checker program. Your program will be the shortest palindrome checker program in the world i think, hehehehe. I have also created a new one before, but it quit long. You can review it by click here. Now we will go to coding part. I will create two simple programs. Firstly to reverse "i love you" to "uoy evol i". Secondly i will create my shortest palindrome checker program that i ever made. Don't waste our time by hear what i said.

*************************************************************
COMPLETE SOURCE CODE FOR : ReverseString.java
*************************************************************


public class ReverseString
{
public static void main(String[]args)
{
String a="i love you";
StringBuffer b=new StringBuffer(a);

System.out.println(b.reverse());
}
}


*************************************************************
LIKE USUAL, JUST COMPILE AND EXECUTE IT
*************************************************************

*************************************************************
COMPLETE SOURCE CODE FOR : MySimplestPalindromeChecker.java
*************************************************************


import javax.swing.JOptionPane;

public class MySimplestPalindromeChecker
{
public static void main(String[]args)
{
String a=JOptionPane.showInputDialog(null,"What word that you want to check ?","Palindrome Checker",JOptionPane.QUESTION_MESSAGE);

if(a!=null)
{
String b=a;
StringBuffer c=new StringBuffer(b);
if(a.equals(c.reverse().toString()))
{
JOptionPane.showMessageDialog(null,"THIS IS A PALINDROME WORD");
}
else
{
JOptionPane.showMessageDialog(null,"THIS IS NOT A PALINDROME WORD");
}
}
}
}


*************************************************************
JUST COMPILE AND EXECUTE IT
*************************************************************

Square root symbol in java

After i spend a day to find how to print square root symbol in java through command prompt, someone tell me from java forum if our command prompt did not have a glyph for the square root character, this job will undone. But when i try use it in JOptionPane's message box it perform well.

In java "\u221A" is refer to square root symbol. It is Unicode.You can try to visit link below for more details :
Click here

If you want to print square root symbol through your command prompt, you can try something like this. I hope your command prompt can support for this thing.


public class Test2
{
public static void main(String[]args)
{
System.out.println("\u221A");
}
}


If you want to put it in JOptionPane's message box (this is perform well in my computer), you can try this :


import javax.swing.JOptionPane;

public class Test2
{
public static void main(String[]args)
{
JOptionPane.showMessageDialog(null,"\u221A");
}
}

Java simple rgb to hex converter

Complete source code below is a small java program that convert rgb value to hex value. Now i will share with you how to get hex value from rgb value. Before i go far, let we see a description about hex value structure.


VALUE THAT YOU GET AFTER DIVIDE OR MULTIPLY

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15
HEX VALUE0123456789ABCDEF

TABLE A

For example :
FFFFFF is a hex value for white and it's rgb value is 255 255 255.First FF is value for red, second FF is value for green and last FF is for blue.So it mean, first 255 in rgb is equal to first FF in hex value.Now i will show you, how to get FF from 255.For this tutorial i show you only for red part. You can try other last two part for green and blue. Now take 255 and devide it with 16. You should get 15.9375. Take value before floating point. In this case we get 15. Look at TABLE A at above. 15 is equal to F. Now you get first F.For second F, take value after floating point and multiply it with 16. In this case you should multiply 0.9375 with 16. It's result is equal to 15 and it also hold F.Now you get hex value for red part.I hope you can understand what i tried to say.

********************************************************************
COMPLETE SOURCE CODE FOR : RGBtoHEX.java
********************************************************************


import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

import java.awt.GridLayout;
import java.awt.Color;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class RGBtoHEX implements ActionListener
{
JTextField r=new JTextField(10);
JTextField g=new JTextField(10);
JTextField b=new JTextField(10);

JLabel rLabel=new JLabel("R",JLabel.CENTER);
JLabel gLabel=new JLabel("G",JLabel.CENTER);
JLabel bLabel=new JLabel("B",JLabel.CENTER);

JPanel panelTextField=new JPanel();
JPanel panelLabel=new JPanel();

JButton button=new JButton("Calculate Now !");

JTextField result=new JTextField(30);

public RGBtoHEX()
{
button.addActionListener(this);

r.setHorizontalAlignment(JTextField.CENTER);
g.setHorizontalAlignment(JTextField.CENTER);
b.setHorizontalAlignment(JTextField.CENTER);

result.setHorizontalAlignment(JTextField.CENTER);
result.setBackground(new Color(255,255,255));
result.setEditable(false);

panelLabel.setLayout(new GridLayout(1,3));
panelLabel.add(rLabel);
panelLabel.add(gLabel);
panelLabel.add(bLabel);

panelTextField.setLayout(new GridLayout(1,3));
panelTextField.add(r);
panelTextField.add(g);
panelTextField.add(b);

JFrame myMainWindow=new JFrame("RGB to HEX");
myMainWindow.getContentPane().setLayout(new GridLayout(4,1));
myMainWindow.getContentPane().add(panelLabel);
myMainWindow.getContentPane().add(panelTextField);
myMainWindow.getContentPane().add(button);
myMainWindow.getContentPane().add(result);

myMainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myMainWindow.setSize(300,130);
myMainWindow.setLocationRelativeTo(null);
myMainWindow.setVisible(true);
}

public void actionPerformed(ActionEvent event)
{
try
{
String hexValue="#";
r.setEditable(false);
g.setEditable(false);
b.setEditable(false);

double red=Double.parseDouble(r.getText());
double green=Double.parseDouble(g.getText());
double blue=Double.parseDouble(b.getText());

for(int i=1;i<=3;i++)
{
double temp=0;

if(i==1)
{
temp=red;
}
else if(i==2)
{
temp=green;
}
else if(i==3)
{
temp=blue;
}

double devideResult=temp/16;

String stringDevideResult=Double.toString(devideResult);

int pointIndexInString=stringDevideResult.indexOf(".");

String firstValue=stringDevideResult.substring(0,pointIndexInString);

double multiplySixteen=(devideResult-(Double.parseDouble(firstValue)))*16;

String stringMultiplySixteen=Double.toString(multiplySixteen);

pointIndexInString=stringMultiplySixteen.indexOf(".");

String secondValue=stringMultiplySixteen.substring(0,pointIndexInString);

if(firstValue.equalsIgnoreCase("10"))
{
firstValue="A";
}
if(firstValue.equalsIgnoreCase("11"))
{
firstValue="B";
}
if(firstValue.equalsIgnoreCase("12"))
{
firstValue="C";
}
if(firstValue.equalsIgnoreCase("13"))
{
firstValue="D";
}
if(firstValue.equalsIgnoreCase("14"))
{
firstValue="E";
}
if(firstValue.equalsIgnoreCase("15"))
{
firstValue="F";
}
if(secondValue.equalsIgnoreCase("10"))
{
secondValue="A";
}
if(secondValue.equalsIgnoreCase("11"))
{
secondValue="B";
}
if(secondValue.equalsIgnoreCase("12"))
{
secondValue="C";
}
if(secondValue.equalsIgnoreCase("13"))
{
secondValue="D";
}
if(secondValue.equalsIgnoreCase("14"))
{
secondValue="E";
}
if(secondValue.equalsIgnoreCase("15"))
{
secondValue="F";
}

hexValue=hexValue+firstValue+secondValue;
}


result.setText(hexValue);
r.setEditable(true);
g.setEditable(true);
b.setEditable(true);
}
catch(Exception exception)
{
JOptionPane.showMessageDialog(null,"Program error and it will terminate","ERROR",JOptionPane.ERROR_MESSAGE);
System.exit(0);
}
}

public static void main(String[]args)
{
RGBtoHEX converter=new RGBtoHEX();
}
}


********************************************************************
JUST COMPILE AND EXECUTE IT
********************************************************************

Java simple image magnifier tooltip


Sometime when we play with images...i mean here a lot of images, like we let user choose an image from 500 images in a JFrame and all images show at the same time without any scrollbar, it can give user a little problem if the image too small. So, how can user make a good choice. This give me some idea to built my own image tooltip. This is a simple tooltip. It will enlarge image when someone hover mouse cursor on it.Image below is a result from program below.


Before you compile and execute it, you should download all images below. After that place them at same location with this java source file.

Love_Music_by_jovincent.jpg

Leafs_1_by_NerghaL.jpg

Hancock-1611.jpg

matrix.jpg

********************************************************************
COMPLETE SOURCE CODE FOR : ImageToolTip.java
********************************************************************


import javax.swing.JPanel;
import javax.swing.ImageIcon;
import javax.swing.JFrame;

import java.awt.GridLayout;
import java.awt.Graphics;

import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;

public class ImageToolTip
{
public static void main(String[]args)
{
PanelImage imageA=new PanelImage("matrix.jpg");

PanelImage imageB=new PanelImage("Hancock-1611.jpg");

PanelImage imageC=new PanelImage("Leafs_1_by_NerghaL.jpg");

PanelImage imageD=new PanelImage("Love_Music_by_jovincent.jpg");

JFrame myMainWindow=new JFrame("Image Tool Tip");
myMainWindow.setResizable(false);
myMainWindow.getContentPane().setLayout(new GridLayout(2,2));
myMainWindow.getContentPane().add(imageA);
myMainWindow.getContentPane().add(imageB);
myMainWindow.getContentPane().add(imageC);
myMainWindow.getContentPane().add(imageD);

myMainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myMainWindow.setSize(100,100);
myMainWindow.setLocationRelativeTo(null);
myMainWindow.setVisible(true);
}
}

class PanelImage extends JPanel implements MouseListener
{
ImageIcon temp;
ImageMagnifier im;

public PanelImage(String a)
{
addMouseListener(this);
temp=new ImageIcon(a);
}

public void paint(Graphics g)
{
super.paint(g);
g.drawImage(temp.getImage(),0,0,getSize().width,getSize().height,this);
}

public void mouseClicked(MouseEvent event)
{
}

public void mouseEntered(MouseEvent event)
{
im=new ImageMagnifier(temp,getSize().width,getSize().height,event.getXOnScreen(),event.getYOnScreen());
}

public void mouseExited(MouseEvent event)
{
im.dispose();
}

public void mousePressed(MouseEvent event)
{
}

public void mouseReleased(MouseEvent event)
{
}
}

class ImageMagnifier extends JFrame
{
ImageIcon temp;

public ImageMagnifier(ImageIcon imageFile,int width,int height,int x,int y)
{
setUndecorated(true);
temp=imageFile;
setLocation(x,y);
setSize(width*9,height*9);
setVisible(true);
}

public void paint(Graphics g)
{
super.paint(g);
g.drawImage(temp.getImage(),0,0,getSize().width,getSize().height,this);
}
}


********************************************************************
JUST COMPILE AND EXECUTE IT
********************************************************************

Java print pi value


Simple java program below will print pi value in command prompt.

****************************************************************
COMPLETE SOURCE CODE FOR : PrintPiValue.java
****************************************************************


public class PrintPiValue
{
public static void main(String[]args)
{
System.out.println("PI value is : "+Math.PI);
}
}


****************************************************************
JUST COMPILE AND EXECUTE IT
****************************************************************

Java write text file


Program below will ask user to enter their name and some description about them. After that it will write into a text file named MyTextFile.txt with .txt file's extension. You can try with other file format like .doc(Microsoft Word) or .rtf or others that you know to store text file. It's not mean if we write to text file, we must use a file with .txt as it's extension.

Description that i get from Wikipedia about text file is :

A text file (sometimes spelled "textfile": an old alternate name is "flatfile") is a kind of computer file that is structured as a sequence of lines.

So, it's mean a text file can hold any file's extension. Not only for .txt.

*********************************************************************
COMPLETE SOURCE CODE FOR : WriteTextFile.java
*********************************************************************


import java.io.File;
import java.io.PrintWriter;

import java.util.Scanner;

import java.awt.Desktop;

public class WriteTextFile
{
public static void main(String[]args)
{
Scanner scanUserInput=new Scanner(System.in);

File targetedFile=new File("MyTextFile.txt");

System.out.println("What is your name ?");
String name=scanUserInput.nextLine();

System.out.println("Put some description about yourself");
System.out.println("-----------------------------------");
String description=scanUserInput.nextLine();

try
{
PrintWriter pw=new PrintWriter(targetedFile);

pw.println("******************");
pw.println(name + "'s"+" profile");
pw.println("******************");
pw.println("Name : "+name);
pw.println();
pw.println("Description : "+description);

pw.flush();
pw.close();


Desktop.getDesktop().open(targetedFile);
}
catch(Exception exception)
{
System.out.println("Problem in file processing");
}
}
}


*********************************************************************
JUST COMPILE AND EXECUTE IT
*********************************************************************

Java determine prime number


Complete source code below will show you, how to create a simple java program that will determine an input number is a prime number or not. This program will run through command prompt.

********************************************************
COMPLETE SOURCE CODE FOR : JavaDeterminePrimeNumber.java
********************************************************


import java.util.Scanner;

public class JavaDeterminePrimeNumber
{
public boolean isPrime(int a)
{
boolean temp=true;
if(a==1)
{
return false;
}
for(int i=2;i<=a;i++)
{
if(i!=1&&i!=a)
{
int tempResult=a%i;
if(tempResult==0)
{
temp=false;
}
}
}
return temp;
}

public static void main(String[]args)
{
JavaDeterminePrimeNumber myTest=new JavaDeterminePrimeNumber();
Scanner s=new Scanner(System.in);
System.out.println("Enter an int value");
int response = s.nextInt();
boolean result=myTest.isPrime(response);

if(result==true)
{
System.out.println("This is a prime number");
}
else
{
System.out.println("This is not a prime number");
}
}
}


********************************************************
JUST COMPILE AND EXECUTE IT
********************************************************

Java simple calendar


Complete source code below will show you, how to create simple calendar in java. This program will prompts the user to enter the year and first day of the year, and display the calendar table for the year on the console.

*************************************************************************
COMPLETE SOURCE CODE FOR : JavaSimpleCalendar.java
*************************************************************************


import java.util.Calendar;
import java.util.Scanner;

public class JavaSimpleCalendar
{
public static void main(String[]args)
{
Scanner s=new Scanner(System.in);

System.out.print("YEAR : ");
int year=s.nextInt();

System.out.println();

System.out.println("FIRST DAY OF THE YEAR");
System.out.println("1 for MONDAY");
System.out.println("2 for TUESDAY");
System.out.println("3 for WEDNESDAY");
System.out.println("4 for THURSDAY");
System.out.println("5 for FRIDAY");
System.out.println("6 for SATURDAY");
System.out.println("7 for SUNDAY");
System.out.print("FIRST DAY : ");
int firstDay=s.nextInt();

System.out.println();

boolean leapYear=false;
if(year%4==0)
{
leapYear=true;
}

for(int i=1;i<=12;i++)
{
System.out.println("***********************");
System.out.println("MONTH : "+i);
System.out.println("***********************");

if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
{
System.out.println("M T W TH F S SU");
boolean firstRound=true;
for(int j=1;j<=31;j++)
{
String temp=Integer.toString(j);
if(temp.length()==1)
{
System.out.print(" ");
}
if(firstDay==1)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=1;k++)
{
System.out.print("");
}
System.out.print(j+" ");
}
else
{
System.out.print(j+" ");
}
}
else if(firstDay==2)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=3;k++)
{
System.out.print("-");
}
System.out.print(j+" ");
}
else
{
System.out.print(j+" ");
}

}
else if(firstDay==3)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=6;k++)
{
System.out.print("-");
}
System.out.print(j+" ");
}
else
{
System.out.print(j+" ");
}
}
else if(firstDay==4)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=9;k++)
{
System.out.print("-");
}
System.out.print(j+" ");
}
else
{
System.out.print(j+" ");
}
}
else if(firstDay==5)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=12;k++)
{
System.out.print("-");
}
System.out.print(j+" ");
}
else
{
System.out.print(j+" ");
}
}
else if(firstDay==6)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=15;k++)
{
System.out.print("-");
}
System.out.print(j+" ");
}
else
{
System.out.print(j+" ");
}
}
else if(firstDay==7)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=18;k++)
{
System.out.print("-");
}
System.out.println(j+" ");
}
else
{
System.out.println(j+" ");
}
firstDay=0;
firstRound=false;
}
firstDay++;
}
System.out.println("\n");
}
else if(i==2)
{
if(leapYear==true)
{
System.out.println("M T W TH F S SU");
boolean firstRound=true;
for(int j=1;j<=29;j++)
{
String temp=Integer.toString(j);
if(temp.length()==1)
{
System.out.print(" ");
}
if(firstDay==1)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=1;k++)
{
System.out.print("");
}
System.out.print(j+" ");
}
else
{
System.out.print(j+" ");
}
}
else if(firstDay==2)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=3;k++)
{
System.out.print("-");
}
System.out.print(j+" ");
}
else
{
System.out.print(j+" ");
}

}
else if(firstDay==3)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=6;k++)
{
System.out.print("-");
}
System.out.print(j+" ");
}
else
{
System.out.print(j+" ");
}
}
else if(firstDay==4)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=9;k++)
{
System.out.print("-");
}
System.out.print(j+" ");
}
else
{
System.out.print(j+" ");
}
}
else if(firstDay==5)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=12;k++)
{
System.out.print("-");
}
System.out.print(j+" ");
}
else
{
System.out.print(j+" ");
}
}
else if(firstDay==6)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=15;k++)
{
System.out.print("-");
}
System.out.print(j+" ");
}
else
{
System.out.print(j+" ");
}
}
else if(firstDay==7)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=18;k++)
{
System.out.print("-");
}
System.out.println(j+" ");
}
else
{
System.out.println(j+" ");
}
firstDay=0;
firstRound=false;
}
firstDay++;
}
System.out.println("\n");
}
else
{
System.out.println("M T W TH F S SU");
boolean firstRound=true;
for(int j=1;j<=28;j++)
{
String temp=Integer.toString(j);
if(temp.length()==1)
{
System.out.print(" ");
}
if(firstDay==1)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=1;k++)
{
System.out.print("");
}
System.out.print(j+" ");
}
else
{
System.out.print(j+" ");
}
}
else if(firstDay==2)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=3;k++)
{
System.out.print("-");
}
System.out.print(j+" ");
}
else
{
System.out.print(j+" ");
}

}
else if(firstDay==3)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=6;k++)
{
System.out.print("-");
}
System.out.print(j+" ");
}
else
{
System.out.print(j+" ");
}
}
else if(firstDay==4)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=9;k++)
{
System.out.print("-");
}
System.out.print(j+" ");
}
else
{
System.out.print(j+" ");
}
}
else if(firstDay==5)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=12;k++)
{
System.out.print("-");
}
System.out.print(j+" ");
}
else
{
System.out.print(j+" ");
}
}
else if(firstDay==6)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=15;k++)
{
System.out.print("-");
}
System.out.print(j+" ");
}
else
{
System.out.print(j+" ");
}
}
else if(firstDay==7)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=18;k++)
{
System.out.print("-");
}
System.out.println(j+" ");
}
else
{
System.out.println(j+" ");
}
firstDay=0;
firstRound=false;
}
firstDay++;
}
System.out.println("\n");
}
}
else
{
System.out.println("M T W TH F S SU");
boolean firstRound=true;
for(int j=1;j<=30;j++)
{
String temp=Integer.toString(j);
if(temp.length()==1)
{
System.out.print(" ");
}
if(firstDay==1)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=1;k++)
{
System.out.print("");
}
System.out.print(j+" ");
}
else
{
System.out.print(j+" ");
}
}
else if(firstDay==2)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=3;k++)
{
System.out.print("-");
}
System.out.print(j+" ");
}
else
{
System.out.print(j+" ");
}

}
else if(firstDay==3)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=6;k++)
{
System.out.print("-");
}
System.out.print(j+" ");
}
else
{
System.out.print(j+" ");
}
}
else if(firstDay==4)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=9;k++)
{
System.out.print("-");
}
System.out.print(j+" ");
}
else
{
System.out.print(j+" ");
}
}
else if(firstDay==5)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=12;k++)
{
System.out.print("-");
}
System.out.print(j+" ");
}
else
{
System.out.print(j+" ");
}
}
else if(firstDay==6)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=15;k++)
{
System.out.print("-");
}
System.out.print(j+" ");
}
else
{
System.out.print(j+" ");
}
}
else if(firstDay==7)
{
if(firstRound==true&&j==1)
{
for(int k=1;k<=18;k++)
{
System.out.print("-");
}
System.out.println(j+" ");
}
else
{
System.out.println(j+" ");
}
firstDay=0;
firstRound=false;
}
firstDay++;
}
System.out.println("\n");
}
}
}
}


*************************************************************************
JUST COMPILE AND EXECUTE IT
*************************************************************************

Java scale image

Sephiroth_by_Wen_JR.jpg



Complete source code below will show you, how to scale an image in java using AffineTransform class. It will scale base on x and y axis.

************************************************************************
COMPLETE SOURCE CODE FOR : ScaleImage.java
************************************************************************


import java.awt.Image;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Toolkit;
import java.awt.BorderLayout;
import java.awt.Dimension;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import java.awt.geom.AffineTransform;

import javax.swing.JScrollPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.JPanel;
import javax.swing.ImageIcon;

public class ScaleImage extends JPanel implements ActionListener
{
JScrollPane scrollBar;
JPanel panelB;
JButton button;
JTextField textFieldX;
JTextField textFieldY;
JFrame myWindow;
ImageIcon ii;

AffineTransform at=new AffineTransform();

Image myImage;

double x=0.3;
double y=0.3;

public ScaleImage()
{
//CHANGE Sephiroth_by_Wen_JR.jpg TO IMAGE THAT YOU WANT
myImage=Toolkit.getDefaultToolkit().getImage("Sephiroth_by_Wen_JR.jpg");

ii=new ImageIcon(myImage);

JLabel labelX=new JLabel("X : ");
JLabel labelY=new JLabel("Y : ");
textFieldX=new JTextField("0.3",10);
textFieldY=new JTextField("0.3",10);
button=new JButton("Refresh");

button.addActionListener(this);

panelB=new JPanel();
panelB.add(labelX);
panelB.add(textFieldX);
panelB.add(labelY);
panelB.add(textFieldY);
panelB.add(button);

setPreferredSize(new Dimension((int)(ii.getIconWidth()*x),(int)(ii.getIconHeight()*y)));
scrollBar=new JScrollPane(this);

myWindow=new JFrame("Scale image");
myWindow.getContentPane().setLayout(new BorderLayout());
myWindow.getContentPane().add(scrollBar,BorderLayout.CENTER);
myWindow.getContentPane().add(panelB,BorderLayout.SOUTH);
myWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myWindow.setSize(500,500);
myWindow.setLocationRelativeTo(null);
myWindow.setVisible(true);
}

public void actionPerformed(ActionEvent e)
{
if(e.getSource()==button)
{
x=Double.parseDouble(textFieldX.getText());
y=Double.parseDouble(textFieldY.getText());

setPreferredSize(new Dimension((int)(ii.getIconWidth()*x),(int)(ii.getIconHeight()*y)));

myWindow.repaint();
scrollBar.revalidate();
}
}

public void paint(Graphics g)
{
at.setToScale(x,y);
Graphics2D g2d=(Graphics2D)g;
g2d.drawImage(myImage,at,this);
}

public static void main(String[]args)
{
ScaleImage si=new ScaleImage();
}
}


************************************************************************
JUST COMPILE AND EXECUTE
Note : Make sure Sephiroth_by_Wen_JR.jpg locate at same location with this source file
************************************************************************

RELAXING NATURE VIDEO