Friday, 30 January 2015

GUI for Font dialogue of MSWord using java

/*This is another program of a GUI model. This is a GUI for the font dialogue of MSWord.
*/






import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class FontDialogue extends JFrame{
private JPanel pnlfont,pnleffect,pnlpreview,pnlbutton,pnledit;
private GridBagConstraints c =new GridBagConstraints();
private GridBagLayout gbl = new GridBagLayout();

public FontDialogue(String title){
super(title);
setLayout(new BorderLayout());
setSize(800,500);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
addPanels();
setVisible(true);
}

public void addPanels(){

//top panel
pnledit = new JPanel();
pnledit.setLayout(new GridLayout(3,1));
pnledit.setBackground(Color.WHITE);
add(pnledit,BorderLayout.CENTER);

//font panel
pnlfont = new JPanel();
pnlfont.setLayout(gbl);
pnlfont.setBackground(Color.WHITE);
pnledit.add(pnlfont);
panelFont(pnlfont);

//effect panel
pnleffect = new JPanel();
pnleffect.setLayout(new GridLayout(4,3));
pnleffect.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.BLACK),"Effects"));
pnleffect.setBackground(Color.WHITE);
pnledit.add(pnleffect);
panelEffect(pnleffect);

//preview panel
pnlpreview = new JPanel();
pnlpreview.setLayout(gbl);
pnlpreview.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.BLACK),"Preview"));
pnlpreview.setBackground(Color.WHITE);
pnledit.add(pnlpreview);
panelPreview(pnlpreview);

//bottom panel
pnlbutton = new JPanel();
add(pnlbutton,BorderLayout.SOUTH);
pnlbutton.setBorder(BorderFactory.createLineBorder(Color.BLUE));
pnlbutton.setLayout(gbl);
panelButton(pnlbutton);
}

public void listInit(DefaultListModel dlm,JPanel pnl){
JList lst;
lst = new JList(dlm);
lst.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
lst.setVisibleRowCount(5);
JScrollPane listScrollPane = new JScrollPane(lst);
pnl.add(listScrollPane,c);

}
public void panelFont(JPanel pnl){
c.fill = GridBagConstraints.HORIZONTAL;
c.insets = new Insets(5,10,5,15);
//first row
JLabel lbl;
String[] name={"Font:","Font Style:","Size:"};
for(int i = 0 ; i < name.length ; i++){
c.gridx = i;
lbl = new JLabel(name[i]);
pnl.add(lbl,c);
}

//second row
c.gridy = 1;
c.weightx = 0.1;
JTextField txt;
for(int i = 0 ; i < 3 ; i ++){
c.gridx = i;
txt = new JTextField("",10);
pnl.add(txt,c);
}

//third row
c.gridy = 2;
c.weightx = 0;
DefaultListModel fontlistmodel = new DefaultListModel();
DefaultListModel stylelistmodel = new DefaultListModel();
DefaultListModel sizelistmodel = new DefaultListModel();
String[] fonts = {"+Body","+Heading","Agra","Agency FB","Aharoni","Akbar-bold","Aldhabi","Book Antiqua","Broadway","Calibri"};
String[] style = {"Regular","Italic","Bold","Bold Italic"};
int[] size = {8,9,10,11,12,14,16,18,20,22,24,26,28,36};
for(int i = 0 ; i < fonts.length ; i++){
fontlistmodel.addElement(fonts[i]);
}
for(int i = 0 ; i < style.length ; i++){
stylelistmodel.addElement(style[i]);
}
for(int i = 0 ; i < size.length ; i++){
sizelistmodel.addElement(size[i]);
}

c.gridx = 0;
listInit(fontlistmodel,pnl);

c.gridx = 1;
listInit(stylelistmodel,pnl);

c.gridx = 2;
listInit(sizelistmodel,pnl);

//fourth row
c.gridy = 3;
String[] names = {"Font Color:","Underline style:","Underline color:"};
for(int i = 0 ; i < names.length ; i++){
c.gridx = i;
lbl = new JLabel(names[i]);
pnl.add(lbl,c);
}

//fifth row
c.gridy = 4;
JComboBox cmb;
String[] colorname = {"Automatic","(none)","Automatic"};
for(int i = 0 ; i < 3 ; i++){
c.gridx = i;
cmb = new JComboBox(colorname);
cmb.setSelectedIndex(i);
pnl.add(cmb,c);
}
c.insets = new Insets(0,0,0,0);

}

public void panelEffect(JPanel pnl){
String[] effects = {"Strikethrough","Shadow","Small caps","Double strikethrough","Outline","All caps","Superscript","Emboss","Hidden","Subscript","Engrave"};
JCheckBox chk;
for(int i = 0 ; i < effects.length ; i++){
chk = new JCheckBox();
chk.setBackground(Color.WHITE);
chk.setText(effects[i]);
pnl.add(chk);

}
}

public void panelPreview(JPanel pnl){
//preview box
c.gridy = 0;
c.insets = new Insets(0,10,0,5);
ImageIcon img = new ImageIcon("Font logo.png");
JLabel lbl = new JLabel(img);
pnl.add(lbl,c);

//Description
c.gridy = 1;
lbl = new JLabel("This is the heading theme font. The current document theme defineswhich font will be");
pnl.add(lbl,c);

c.gridy = 2;
lbl = new JLabel("used");
pnl.add(lbl,c);
}

public void panelButton(JPanel pnl){
JButton btn;
String[] btnname = {"Default...","Ok","Cancel"};
c.anchor = GridBagConstraints.FIRST_LINE_START;
for(int i = 0 ; i < btnname.length ; i++){
c.gridx = i;
if(i == 0){
c.insets = new Insets(0,0,0,300);
}

else{
c.insets = new Insets(0,0,0,0);
}
btn = new JButton(btnname[i]);
pnl.add(btn,c);
}
}

public static void main (String[] args) {
FontDialogue font = new FontDialogue("Font");
font.pack();

}
}

Tuesday, 27 January 2015

GUI for New dialog box of jcreator using java

/*A simple GUI for one panel of the NEW dialog box using JAVA. This Program also however doesnot handle any event. The uniqueness of this program is the use of GridBagLayout in java effectively as rows and colums along with the use of panels.
*/  






import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class New extends JFrame {
    private JPanel pnl_North,pnl_South,pnl_West,pnl_Center,pnl_2;
    private JLabel lbltitle,lblcomment,lblimg,lbltype,lblpath,lblname,lbllocation,lblcheckbox;
    private JTextField txtname,txtlocation;
    private JCheckBox chkbox;
    private JButton btnbrowse;
    private GridBagConstraints c =new GridBagConstraints();
    private GridBagLayout gbl = new GridBagLayout();
  
    public New(String title){
        super(title);
        setSize(800,700);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setResizable(false);
        setLayout(new BorderLayout());
        setVisible(true);
        addPanel();
    }
  
    public JPanel panelInitialize(JPanel pnl){
        pnl = new JPanel();
        pnl.setLayout(gbl);
        pnl.setBorder(BorderFactory.createLineBorder(Color.BLACK));
        return pnl;
    }
    void addPanel(){
      
        pnl_North = panelInitialize(pnl_North);
        add(pnl_North,BorderLayout.NORTH);
        pnlNorth(pnl_North);
              
           pnl_West = panelInitialize(pnl_West);
        add(pnl_West,BorderLayout.WEST);
        pnlWest(pnl_West);
      
        pnl_2 = new JPanel();
        pnl_2.setLayout(new BorderLayout());
        add(pnl_2,BorderLayout.CENTER);
  
        pnl_Center = panelInitialize(pnl_Center);  
        pnl_2.add(pnl_Center,BorderLayout.CENTER);
        pnlCenter(pnl_Center);

        pnl_South = panelInitialize(pnl_South);
        pnl_2.add(pnl_South,BorderLayout.SOUTH);
        pnlSouth(pnl_South);
      

    }
    void pnlNorth(JPanel pnl){
        c.fill = GridBagConstraints.BOTH;
        c.gridx = 0;
        c.gridy = 0;
        c.gridwidth = 1;
        c.weightx = 0.9;
        lbltitle = new JLabel("File Path");
        lbltitle.setForeground(Color.BLUE);
        pnl.add(lbltitle,c);
      
        c.gridx = 1;
        c.gridy = 0;
        c.gridheight = 2;
        c.weightx=0.1;
        c.insets = new Insets(0,50,0,5);
        ImageIcon img = new ImageIcon("New logo.png");
        lblimg = new JLabel(img);
        pnl.add(lblimg,c);
      
        c.gridheight = 1;
        c.gridx = 0;
        c.gridy = 1;
      
        c.weightx = 0.9;
        c.insets = new Insets(0,0,0,0);
        lblcomment = new JLabel("Specify the name and path");
        pnl.add(lblcomment,c);
          
    }
  
    void pnlWest(JPanel pnl){
        c.insets = new Insets(0,5,5,5);
        c.fill = GridBagConstraints.BOTH;
        c.weighty = 0.1;
        c.gridx = 0;
        c.gridy = 0;
        lbltype = new JLabel("File Type");
        pnl.add(lbltype,c);
      
        c.fill = GridBagConstraints.HORIZONTAL;
        c.gridx = 0;
        c.gridy = 1;
        c.weighty = 0.9;
        lblpath = new JLabel("File Path");
        pnl.add(lblpath,c);
    }
  
    void pnlCenter(JPanel pnl){
        c.insets = new Insets(5,5,5,5);
        c.fill = GridBagConstraints.BOTH;
        c.gridx = 0;
        c.gridy = 0;
        lblname = new JLabel("Name:");
        pnl.add(lblname,c);
      
        c.gridx = 1;
        c.gridy = 0;
        c.gridwidth=2;
        txtname = new JTextField("",20);
        pnl.add(txtname,c);
      
        c.gridx = 0;
        c.gridy = 1;
        c.gridwidth = 1;      
        lbllocation = new JLabel("Location:");
        pnl.add(lbllocation,c);
      
        c.gridx = 1;
        c.gridy = 1;
        txtlocation = new JTextField("",20);
        pnl.add(txtlocation,c);
      
        c.gridx=2;
        c.gridy=1;
        btnbrowse = new JButton("...");
        pnl.add(btnbrowse,c);
      
        c.insets = new Insets(50,0,0,0);
        c.anchor = GridBagConstraints.SOUTH;
        c.gridx = 0;
        c.gridy = 2;
        c.gridwidth=3;
        JCheckBox chkbox = new JCheckBox();
        chkbox.setLabel("Set as default page");
        pnl.add(chkbox,c);
          
    }
      
    void pnlSouth(JPanel pnl){
        c.insets = new Insets(5,5,5,5);
        c.gridwidth=1;
        JButton btn;
        String[] name = {"Back","Next","Finish","Cancel","Help"};
        for(int i=0;i<5;i++){
            c.gridx = i;
            btn = new JButton(name[i]);
            pnl.add(btn,c);
        }
    }
      
    public static void main (String[] args) {
        New n = new New("New");
        n.pack();
    }
  
}

Saturday, 24 January 2015

Run Window using Grid Bag Layout


//Improved Gui for the same RUN window of previous problem using GridBagLayout




import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class RunGridBag extends JFrame{
private JLabel lblimage,lblopen,lblcomment1,lblcomment2;
private JButton btnok,btncancel,btnbrowse;
private JComboBox commandList;
private GridBagConstraints c =new GridBagConstraints();
private GridBagLayout gbl =new GridBagLayout();


RunGridBag(String title){
super(title);
setLayout(gbl);
setSize(400,200);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
addComponent();
setVisible(true);
}
void addComponent(){

c.fill = GridBagConstraints.BOTH;
c.gridheight=2;
ImageIcon img = new ImageIcon("logo.png");
lblimage = new JLabel(img);
gbl.setConstraints(lblimage,c);
add(lblimage);

c.gridheight=1;
lblcomment1 = new JLabel("Type the name of a program,folder,document,or Internet");
lblcomment1.setOpaque(true);
lblcomment1.setBackground(Color.WHITE);
c.gridwidth=GridBagConstraints.REMAINDER;
gbl.setConstraints(lblcomment1,c);
add(lblcomment1);

lblcomment2 = new JLabel("resource, and Windows will open it for you");
lblcomment2.setOpaque(true);
lblcomment2.setBackground(Color.WHITE);
gbl.setConstraints(lblcomment2,c);
 add(lblcomment2);
 

 c.gridwidth = GridBagConstraints.LINE_START;
 lblopen = new JLabel("Open:");
 lblopen.setOpaque(true);
lblopen.setBackground(Color.WHITE);
gbl.setConstraints(lblopen,c);
 add(lblopen);
 
 String[] commandStrings = { "calc","winword","control panel","cmd"};
  commandList = new JComboBox(commandStrings);
  commandList.setEditable(true);
  c.gridwidth = GridBagConstraints.REMAINDER;
  commandList.setBackground(Color.WHITE);
  gbl.setConstraints(commandList,c);
 add(commandList);

  c.weightx=1;
  c.insets = new Insets(20,100,20,5);
  c.gridwidth = GridBagConstraints.FIRST_LINE_END;
  btnok = new JButton("OK");
  gbl.setConstraints(btnok,c);
add(btnok);

c.insets = new Insets(20,5,20,5);
btncancel = new JButton("CANCEL");
gbl.setConstraints(btncancel,c);
add(btncancel);

btnbrowse = new JButton("Browse..");
gbl.setConstraints(btnbrowse,c);
add(btnbrowse);


}
public static void main (String[] args) {
RunGridBag r = new RunGridBag("Run");
r.pack();

}
}





Friday, 23 January 2015

RUN window using panels in java (Just a GUI)


/* A Demo GUI for the RUN window in windows OS in java using panels. It does not handle any events though. 
*/






import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class Run extends JFrame{
private JLabel lblimage,lblopen,lblcomment1,lblcomment2;
private JPanel pnllabel,pnlcomment,pnlbutton,pnlwork,pnlup;
private JButton btnok,btncancel,btnbrowse;
private JComboBox commandList;

Run(String title){
super(title);
setLayout(new BorderLayout());
setSize(400,200);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
addComponent();
setVisible(true);
}
void addComponent(){
pnlup = new JPanel();
add(pnlup,BorderLayout.CENTER);
pnlup.setLayout(new BorderLayout());

pnllabel = new JPanel();
  pnlup.add(pnllabel,BorderLayout.WEST);
westpanel(pnllabel);

pnlwork = new JPanel();
pnlup.add(pnlwork,BorderLayout.CENTER);
centerpanel(pnlwork);

pnlbutton = new JPanel();
add(pnlbutton,BorderLayout.SOUTH);
buttonpanel(pnlbutton);

}
void westpanel(JPanel w){
w.setLayout(new GridLayout(2,1));
ImageIcon img = new ImageIcon("logo.png");
lblimage = new JLabel(img);
w.add(lblimage);
lblopen = new JLabel("Open");
w.add(lblopen);

}
void centerpanel(JPanel c){
c.setLayout(new GridLayout(2,1));
pnlcomment = new JPanel();
c.add(pnlcomment);
lblcomment1 = new JLabel("Type the name of a program,folder,document,or Internet");
pnlcomment.add(lblcomment1);
lblcomment2 = new JLabel("resource, and Windows will open it for you");
pnlcomment.add(lblcomment2);
String[] commandStrings = { "calc","winword","control panel","cmd"};
  commandList = new JComboBox(commandStrings);
  commandList.setSelectedIndex(1);
  commandList.setEditable(true);
  c.add(commandList);

}
void buttonpanel(JPanel d){
btnok = new JButton("OK");
d.add(btnok);
btncancel = new JButton("CANCEL");
d.add(btncancel);
btnbrowse = new JButton("Browse..");
d.add(btnbrowse);
}
public static void main (String[] args) {
Run r = new Run("Run");
}
}



Tuesday, 13 January 2015

A Text Editor made in Java using GUI Components


/*A Text Editor which can load a .txt file from your desktop , edit it(update it), save your work , and exit.
It is a type of a java Text Editor.*/




When the button with "..." is pressed then below panel is opened.







import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;
import java.io.*;
import java.util.*;
import javax.swing.filechooser.*;

class MyTextEditor extends JFrame implements ActionListener {
private JPanel pnlBrowse,pnlTextEditor,pnlButtons;
private JButton btnload,btnSave,btnSaveExit,btnCancel,btnExplore;
private JTextField txtName;
private JTextArea txtEditor;
private JLabel lblname;
private JScrollPane scrollpane;
private File f;

public MyTextEditor(String title){
super(title);
setLayout(new BorderLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500,500);
setVisible(true);
addComponent();
}

public void addComponent(){
panelBrowse();
panelTextEditor();
panelButtons();
}

public void panelBrowse(){
pnlBrowse=new JPanel();
add(pnlBrowse,BorderLayout.NORTH);
pnlBrowse.setLayout(new FlowLayout());
lblname=new JLabel("Choose File Name: ");
pnlBrowse.add(lblname);
txtName=new JTextField(" ",30);
pnlBrowse.add(txtName);
btnExplore=new JButton("...");
pnlBrowse.add(btnExplore);
pnlBrowse.setBorder(BorderFactory.createEmptyBorder());
btnExplore.addActionListener(this);
}

public void panelTextEditor(){
pnlTextEditor=new JPanel();
add(pnlTextEditor,BorderLayout.CENTER);
pnlTextEditor.setLayout(new BorderLayout());
txtEditor=new JTextArea(200,200);
scrollpane = new JScrollPane(txtEditor);
pnlTextEditor.add(scrollpane,BorderLayout.CENTER);
pnlTextEditor.setBorder(BorderFactory.createEmptyBorder());
}

public void panelButtons(){
pnlButtons=new JPanel();
add(pnlButtons,BorderLayout.SOUTH);
pnlButtons.setLayout(new FlowLayout());
btnSave=new JButton("Save");
pnlButtons.add(btnSave);
btnSaveExit=new JButton("Save & Exit");
pnlButtons.add(btnSaveExit);
btnload=new JButton("Load");
pnlButtons.add(btnload);
btnCancel= new JButton("Cancel");
pnlButtons.add(btnCancel);
pnlButtons.setBorder(BorderFactory.createEmptyBorder());
btnload.addActionListener(this);
btnSave.addActionListener(this);
btnSaveExit.addActionListener(this);
btnCancel.addActionListener(this);
}

public void fileLoad(){
String filename = txtName.getText().trim();  
Scanner input;
txtEditor.setText("");
try{
input = new Scanner(new File(filename));
while(input.hasNext()){
txtEditor.append(input.nextLine());
txtEditor.append("\n");
}
input.close();
}
catch(Exception e){}
}

public void fileSave(){
String filename=txtName.getText().trim();
Formatter output;
try{
output=new Formatter(filename);
output.format(txtEditor.getText());
output.close();
}
catch(Exception e){}
}

public void actionPerformed(ActionEvent ae){
String cmd=ae.getActionCommand();
switch(cmd){
case "Load":
fileLoad();
break;

case "Save":
fileSave();
break;

case "Save & Exit":
fileSave();
setVisible(false);
System.exit(0);
break;

case "Cancel":
System.exit(0);
break;

case "...":
   JFileChooser browse;
browse = new JFileChooser();
browse.setFileFilter(new FileNameExtensionFilter("txt Files","txt"));
browse.showOpenDialog(this);
   f = browse.getSelectedFile();
   txtName.setText(f.getAbsolutePath());  
}
}

public static void main (String[] args) {
MyTextEditor textEditor = new MyTextEditor("Text Editor");
}
}







Sunday, 11 January 2015

Spinner using Java


//Choose a date from three separate fields for day,month and year by the use of spinners





import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;

class SpinnerTest1 extends JFrame implements ActionListener{
private JLabel lblDay,lblMonth,lblYear,lblDate;
private JSpinner spinnerD,spinnerM,spinnerY;
private JButton btnLoad;

public SpinnerTest1(){
setSize(300,200);
setLayout(new GridLayout(4,2));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
addComponent();
}
public void addComponent(){
//First Spinner for Day
lblDay = new JLabel("Day");
add(lblDay);
Calendar calendar = Calendar.getInstance();
int presentDate = calendar.get(Calendar.DATE);
SpinnerModel dayModel = new SpinnerNumberModel(presentDate,1,31,1);
spinnerD = new JSpinner(dayModel);
add(spinnerD);
spinnerD.setEditor(new JSpinner.NumberEditor(spinnerD,"#"));

//Second Spinner for Month
lblMonth = new JLabel("Month");
add(lblMonth);
String[] month = new java.text.DateFormatSymbols().getMonths();
SpinnerModel monthModel = new SpinnerListModel(month);
spinnerM = new JSpinner(monthModel);
add(spinnerM);
spinnerM.setEditor(new JSpinner.ListEditor(spinnerM));

//Third Spinner for Year
lblYear = new JLabel("Year");
add(lblYear);
int presentYear = calendar.get(Calendar.YEAR);
SpinnerModel yearModel = new SpinnerNumberModel(presentYear,presentYear-100,presentYear+100,1);
spinnerY = new JSpinner(yearModel);
add(spinnerY);
spinnerY.setEditor(new JSpinner.NumberEditor(spinnerY,"#"));

//Button for the Date Display
btnLoad = new JButton("Selected Date");
add(btnLoad);
btnLoad.addActionListener(this);
//Label to show date
lblDate = new JLabel();
add(lblDate);

}
public void actionPerformed(ActionEvent e){
Object day,year,month;
day = spinnerD.getValue();
month = spinnerM.getValue();
year = spinnerY.getValue();
lblDate.setText(day + "/" + month + "/" + year);
}

public static void main (String[] args) {
SpinnerTest1 st1= new SpinnerTest1();
}

}




Saturday, 10 January 2015

Slider in java GUI


//3 sliders for red, green and blue color which changes the background of panel accordingly.





import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;


class SliderTest extends JFrame {
private JSlider sldRed,sldGreen,sldBlue;
private JLabel lblText;
private JPanel pnlLabel,pnlSlider;
int red = 1,green = 1,blue = 1;

public SliderTest(String title){
super(title);
setSize(300,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridLayout(2,1));
setVisible(true);
addComponent();
}

public void addComponent(){
sldRed = new JSlider(JSlider.VERTICAL,1,256,1);
sldRed.addChangeListener(new ChangeListener(){
public void stateChanged(ChangeEvent e){
red = sldRed.getValue();
panelLabel();
}
});
sldGreen = new JSlider(JSlider.VERTICAL,1,256,1);
sldGreen.addChangeListener(new ChangeListener(){
public void stateChanged(ChangeEvent e){
green = sldGreen.getValue();
panelLabel();
}
});
sldBlue = new JSlider(JSlider.VERTICAL,1,256,1);
sldBlue.addChangeListener(new ChangeListener(){
public void stateChanged(ChangeEvent e){
blue = sldBlue.getValue();
panelLabel();
}
});
panelSlider();
pnlLabel = new JPanel();
add(pnlLabel);
pnlLabel.setBorder(
                             BorderFactory.createTitledBorder("RGB Component"));
lblText = new JLabel();
lblText.setOpaque(true);
pnlLabel.add(lblText);
panelLabel();
}

public void panelSlider(){
pnlSlider = new JPanel();
add(pnlSlider);
pnlSlider.setLayout(new GridLayout(1,3));
pnlSlider.add(sldRed);
pnlSlider.add(sldGreen);
pnlSlider.add(sldBlue);

}

public void panelLabel(){

lblText.setText(red + "," + green + "," + blue );
pnlLabel.setBackground(new Color(red,green,blue));
}

public static void main (String[] args) {
SliderTest st = new SliderTest("Slider Color");
}
}






Wednesday, 7 January 2015

Validated TextBox


// TextField which can contain only "numeric values" along with '+' or '-' at beginning (if used) and '.' at just one place.





import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


class FormattedTextBox extends JFrame implements KeyListener{
private JLabel lbltext;
private JTextField txtNum;

public FormattedTextBox(String title){
super(title);
setLayout(new GridLayout(1,1));
setSize(300,100);
              init();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}

public void init(){
lbltext=new JLabel("Enter Value : ");
add(lbltext);
txtNum = new JTextField(" ",10);
add(txtNum);
txtNum.addKeyListener(this);
}

public void keyPressed(KeyEvent ke){}
public void keyReleased(KeyEvent ke){}

public void keyTyped(KeyEvent ke){
char c = ke.getKeyChar();
int dot=txtNum.getText().indexOf(".");
int plus=txtNum.getText().indexOf("+");
int minus=txtNum.getText().indexOf("-");

if(txtNum.getCaretPosition()==0){

if(plus==-1&&minus==-1&&dot==-1){
if(!(c == '+' || c =='-' || Character.isDigit(c) || c=='.')) {
                                   ke.consume();        
                            }
}

else if(dot!=-1&&minus==-1&&plus==-1){
if(!(c == '+' || c =='-' || Character.isDigit(c))) {
                                   ke.consume();        
                            }
}

else if(plus!=-1||minus!=-1){
ke.consume();        
                     }
}

else {
if(dot==-1){
if(!(Character.isDigit(c) || c=='.')) {
                                   ke.consume();
                          }
}
else{
if(!(Character.isDigit(c))) {
                                     ke.consume();
                          }
}
}    
     }
 
public static void main (String[] args) {
FormattedTextBox ft=new FormattedTextBox("HELLO");

}
}