Sunday, December 14, 2008

SWING(Notepad Project)

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JMenuItem;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import javax.swing.text.Keymap;
import java.awt.*;
import java.awt.event.*;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.StringReader;
import java.io.StringWriter;
import java.sql.Date;
import java.text.MessageFormat;
import java.util.Locale;

public class Notepad extends JPanel implements ActionListener
{
JMenuItem New,save,saveas,exit,open,cut,copy,paste,selectall,font,wron,wroff,srch,dt;
static JTextArea textArea;
JFileChooser fc;
String s1;
public Notepad()
{
super(new BorderLayout());
textArea = new JTextArea(5, 30);
textArea.setEditable(true);
JScrollPane scrollPane = new JScrollPane(textArea);
setPreferredSize(new Dimension(500, 250));
add(scrollPane,BorderLayout.CENTER);
}

public JMenuBar createMenuBar()
{
JMenuBar menuBar;
menuBar = new JMenuBar();
JMenu mainMenu1 = new JMenu("File");
menuBar.add(mainMenu1);
mainMenu1.setMnemonic(KeyEvent.VK_F);
New = new JMenuItem("New",KeyEvent.VK_N);
New.addActionListener((ActionListener) this);
mainMenu1.add(New);
open = new JMenuItem("Open",KeyEvent.VK_O);
open.addActionListener(this);
mainMenu1.add(open);
save = new JMenuItem("Save",KeyEvent.VK_S);
save.addActionListener(this);
mainMenu1.add(save);
saveas = new JMenuItem("SaveAs",KeyEvent.VK_S);
saveas.addActionListener(this);
mainMenu1.add(saveas);
exit = new JMenuItem("Exit",KeyEvent.VK_X);
exit.addActionListener(this);
mainMenu1.add(exit);
JMenu mainMenu2=new JMenu("Edit");
menuBar.add(mainMenu2);
mainMenu2.setMnemonic(KeyEvent.VK_E);
cut = new JMenuItem("Cut",KeyEvent.VK_CUT);
cut.addActionListener(this);
mainMenu2.add(cut);
copy = new JMenuItem("Copy",KeyEvent.VK_COPY);
copy.addActionListener(this);
mainMenu2.add(copy);
paste = new JMenuItem("Paste",KeyEvent.VK_PASTE);
paste.addActionListener(this);
mainMenu2.add(paste);
selectall = new JMenuItem("SelectAll");
selectall.addActionListener(this);
mainMenu2.add(selectall);
srch = new JMenuItem("Find");
srch.addActionListener(this);
mainMenu2.add(srch);
JMenu mainMenu3=new JMenu("Format");
menuBar.add(mainMenu3);
wron = new JMenuItem("Word Wrap On");
wron.addActionListener(this);
mainMenu3.add(wron);
wroff = new JMenuItem("Word Wrap Off");
wroff.addActionListener(this);
mainMenu3.add(wroff);
font = new JMenuItem("Font",KeyEvent.VK_PASTE);
font.addActionListener(this);
mainMenu3.add(font);
dt = new JMenuItem("Date/Time ",KeyEvent.VK_D);
dt.addActionListener(this);
mainMenu3.add(dt);
textArea.setWrapStyleWord(false);
return menuBar;
}
public void actionPerformed(ActionEvent e)
{
fc= new JFileChooser();
if (e.getSource() == open) {
int returnVal = fc.showOpenDialog(Notepad.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
try {
FileReader fr = new FileReader(file);
textArea.read(fr,null);
fr.close();
}
catch (Exception ev) { System.err.println("Could not load page: "+file);
}
}
textArea.setCaretPosition(textArea.getDocument().getLength());

} else if (e.getSource() == save) {
int returnVal = fc.showSaveDialog(Notepad.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
try {
FileWriter fw = new FileWriter(file);
textArea.write(fw);
fw.close();
}
catch(Exception ev)
{
System.err.println("Could not save page: "+file);
}
}
textArea.setCaretPosition(textArea.getDocument().getLength());
}
else if(e.getSource()==New)
{
s1="";
textArea.setText(s1);
}
else if(e.getSource()==cut){
textArea.cut();

}else if(e.getSource()==copy)
{
textArea.copy();
}else if(e.getSource()==paste)
{
textArea.paste();
}
else if(e.getSource()==exit)
{
System.exit(0);
}
else if(e.getSource()==selectall)
{
textArea.selectAll();
}
else if(e.getSource()==font)
{
String str;
str=textArea.getSelectedText();
new fnt(str);
}
else if(e.getSource()==wron)
{
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
}
else if(e.getSource()==wroff)
{
System.out.println("This is off area ");
textArea.setLineWrap(false);
textArea.setWrapStyleWord(false);
}
else if(e.getSource()== srch)
{
new find(this);
}
else if(e.getSource()==dt)
{
String pattern = " {0, time, short}" + " {0, date, long}." ;
StringWriter sw = new StringWriter(100);
PrintWriter out = new PrintWriter(sw, true);
MessageFormat formatter = new MessageFormat(pattern, Locale.US);
Object messageArgs[] = {new Date(0),new Double(9000.12)};
out.print(formatter.format(messageArgs));
out.close();
textArea.append(sw.toString());
}
else if(e.getSource()==saveas) {
int returnVal = fc.showDialog(this,"SaveAs");
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
try
{
s1="";
s1=textArea.getText();
FileWriter fw=new FileWriter(file);
StringReader sr=new StringReader(s1);
BufferedReader br=new BufferedReader(sr);
String lr="";
while((lr=br.readLine())!=null)
{
fw.write(lr+" ");
}
fw.close();
}catch(Exception pe){}
}
}
}
private static void createAndShowGUI()
{
JFrame frame = new JFrame("Untitled-Notepad");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Notepad note = new Notepad();
frame.setJMenuBar(note.createMenuBar());
note.setOpaque(true);
frame.setContentPane(note);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args)
{
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}




public class fnt extends JDialog implements ActionListener
{
JDialog dialog;
JLabel lab1,lab2,lab3;
JButton button1,button2;
JList lst1,lst2,lst3;
String[] names={"Arial","Times New Roman","Scanserif"};
String[] types={"Regular","Bold","Italic"};
String[] sizes={"8","10","12","14","16","18","20"};
public fnt(String s)
{
dialog = new JDialog();
lst1=new JList(names);
lst1.setSelectedIndex(0);
lst2=new JList(types);
lst2.setSelectedIndex(0);
lst3=new JList(sizes);
lst3.setSelectedIndex(0);
lab1=new JLabel("Font Name");
dialog.add(lst1);
lab2=new JLabel("Font Type");
dialog.add(lst2);
lab3=new JLabel("Font Size");
dialog.add(lst3);
button1= new JButton("Ok");
dialog.add(button1);
button2=new JButton("Cancel");
dialog.add(button2);
button1.addActionListener(this);
button2.addActionListener(this);
dialog.setLayout(new FlowLayout());
dialog.setSize(300,300);
dialog.setVisible(true);
}
public void actionPerformed(ActionEvent fe)
{
String str1,str2,str3;
int st=0;
str1=lst1.getSelectedValue().toString();
str2=lst2.getSelectedValue().toString();
str3=lst3.getSelectedValue().toString();
if(str2=="Regular")
{
st=Font.PLAIN;
}
if(str2=="Bold")
{
st=Font.BOLD;
}
if(str2=="Italic")
{
st=Font.ITALIC;
}
str3=lst3.getSelectedValue().toString();
int size=Integer.parseInt(str3);
if(fe.getSource()==button1)
{
Font fnt=new Font(str1,st,size);
Notepad.textArea.setFont(fnt);
dialog.setVisible(false);
}
if(fe.getSource()==button2)
{
System.exit(0);
}
}
}
//Find Class
public class find extends JDialog implements ActionListener
{
JPanel jPanel = new JPanel();
JButton find_next = new JButton();
JButton replace = new JButton();
JButton replaceAll = new JButton();
JButton cancel = new JButton();
JTextField find = new JTextField();
JTextField replacewith = new JTextField();
JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel();
JCheckBox matchcase = new JCheckBox();
int pos;
int count;
int a;
int newcounter;
int jass=0;

public find(Notepad mnote)
{
find_next.setText("Find Next");
replace.setText (" Replace ");
replaceAll.setText("Replace All");
cancel.setText (" Cancel ");
jLabel1.setText("Find Text:");
jLabel2.setText("Replace With:");
matchcase.setText("Match Case");
JPanel jPanela = new JPanel();
JPanel jPanelb = new JPanel();
JPanel jPanelc = new JPanel();
JPanel jPaneld = new JPanel();
jPanel.setLayout(new GridLayout(0, 1, 4, 0));
jPanela.setLayout(new FlowLayout(FlowLayout.RIGHT));
jPanelb.setLayout(new FlowLayout(FlowLayout.RIGHT));
jPanelc.setLayout(new FlowLayout(FlowLayout.RIGHT));
jPaneld.setLayout(new FlowLayout(FlowLayout.RIGHT));
jPanela.add(jLabel1);
jPanela.add(find);
jPanela.add(find_next);
jPaneld.add(matchcase);
jPanelb.add(jLabel2);
jPanelb.add(replacewith);
jPanelb.add(replace);
jPanelc.add(cancel);
//jPanelb.add(replaceAll);
find.setColumns(14);
replacewith.setColumns(14);
jPanel.setBorder(BorderFactory.createTitledBorder(""));
jPanel.add(jPanela);
jPanel.add(jPanelb);
jPanel.add(jPanelc);
jPanel.add(jPaneld);
getContentPane().add(jPanel);
find_next.addActionListener(this);
replace.addActionListener(this);
//replaceAll.addActionListener(this);
cancel.addActionListener(this);
setResizable(false);
setVisible(true);
pack();
// disable awt compatibility for find text field so that the enter key will work for default button
KeyStroke enter = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0);
Keymap map = find.getKeymap();
map.removeKeyStrokeBinding(enter);
getRootPane().setDefaultButton(find_next);
}
public void actionPerformed(ActionEvent se)
{

if (se.getSource() == cancel)
{
setVisible(false);
}
else if (se.getSource() == find_next)
{
finds();
}

else if (se.getSource() == replace)
{

Replace();
}
/* else if (se.getSource() == replaceAll)
{
replaceAll();
}*/
}
public void finds()
{
String str;
String txt;

if (matchcase.isSelected())
{
txt = Notepad.textArea.getText();
str = find.getText();
}
else
{
txt = Notepad.textArea.getText().toLowerCase();
str = find.getText().toLowerCase();
}
pos = txt.indexOf(str,Notepad.textArea.getSelectionEnd());
if (pos >=0)
Notepad.textArea.select(pos,(pos+str.length()));

}

/* String str;
String txt;

if (matchcase.isSelected())
{
txt = mynote.textArea.getText();
str = find.getText();
}
else
{
txt = mynote.textArea.getText().toLowerCase();
str = find.getText().toLowerCase();
}

pos = txt.indexOf(str,mynote.textArea.getSelectionEnd());

if (pos >= 0 )
System.out.println(pos+str.length());
mynote.textArea.select(pos,pos+str.length()+1);

}*/

public void Replace()
{

int start = Notepad.textArea.getSelectionStart();
int end = Notepad.textArea.getSelectionEnd();
if (end > start)
{
Notepad.textArea.replaceSelection(replacewith.getText());
System.out.println(start+(replacewith.getText().length()));
Notepad.textArea.select(start, start + replacewith.getText().length());

finds();
}else
{
System.out.println("this is inside the else loop");
System.out.println(start+replacewith.getText().length());
}
}

/*public void Replace()
{

int start = mynote.textArea.getSelectionStart();
System.out.print("start position is :");
int end = mynote.textArea.getSelectionEnd();
if (end > start)
System.out.print(mynote.textArea.getSelectedText());

//System.out.print((start)+(replacewith.getText().length()));
mynote.textArea.select(start,start+replacewith.getText().length());
//finds();
}*/
public void replaceAll()
{
Notepad.textArea.select(0,0);
while (pos >= 0)
Replace();
}
}
}

1 comment:

  1. Java: Swing(Notepad Project) >>>>> Download Now

    >>>>> Download Full

    Java: Swing(Notepad Project) >>>>> Download LINK

    >>>>> Download Now

    Java: Swing(Notepad Project) >>>>> Download Full

    >>>>> Download LINK a1

    ReplyDelete