jueves, 28 de mayo de 2015

Como crear Blog de notas(Notepad) en JAVA con GUI

Hoy les quiero mostrar de forma sencilla y en tan solo 2 clases de JAVA un blog de notas el cual pueden editar, crear y guardar documentos de texto.

Comenzemos, la clase Main, utilizamos la libreria JFrame para la GUI


import javax.swing.JFrame;

public class Main {
public static void main(String args[]){
JFrame frame = new Grid();
frame.setTitle("Notepad");
frame.setVisible(true);
frame.setSize(500, 320);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(true);
frame.setLocationRelativeTo(null);
}
}


En esta clase llamamos al objeto de la clase Grid, la clase Grid es la siguiente y cuenta con la parte más importante del código:

import java.awt.BorderLayout;
/**import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;*/
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

import javax.swing.BorderFactory;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.border.EtchedBorder;

public class Grid extends JFrame{
/**
*/
private static final long serialVersionUID = 1L;
int fileToOpen;
int fileToSave;
JFileChooser fileOpen;
JFileChooser fileSave;
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
//2014/08/06 15:59:48
Grid(){
JMenuBar menuBar = new JMenuBar();
final JTextArea textArea = new JTextArea();
setJMenuBar(menuBar);
JMenu file = new JMenu("File");
menuBar.add(file);
JMenuItem newOption = new JMenuItem("New");
JMenuItem open = new JMenuItem("Open");
JMenuItem save = new JMenuItem("Save");
JMenuItem close = new JMenuItem("Exit");
file.add(newOption);
file.add(open);
file.add(save);
file.addSeparator();
file.add(close);
getContentPane().add(textArea);
String texto_inferior = "Fecha: "+ dateFormat.format(date);
JLabel status = new JLabel(texto_inferior, JLabel.CENTER);
status.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED));
add(status,BorderLayout.SOUTH);
newOption.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
textArea.setText("");
}
});
open.addActionListener(new ActionListener(){
private Scanner scan;

public void actionPerformed(ActionEvent e){
openFile();
if (fileToOpen == JFileChooser.APPROVE_OPTION){
textArea.setText("");
try{
scan = new Scanner(new FileReader(fileOpen.getSelectedFile().getPath()));
while (scan.hasNext())
textArea.append(scan.nextLine());
} catch (Exception ex){
System.out.println(ex.getMessage());
}
}
}
});
save.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
saveFile();
if (fileToSave == JFileChooser.APPROVE_OPTION){
try {
BufferedWriter out = new BufferedWriter(new FileWriter(fileSave.getSelectedFile().getPath()));
out.write(textArea.getText());
out.close();
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
}
});
close.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
}
public void openFile(){
JFileChooser open = new JFileChooser();
int option = open.showOpenDialog(this);
fileToOpen = option;
fileOpen = open;
}
public void saveFile(){
JFileChooser save = new JFileChooser();
int option = save.showOpenDialog(this);
fileToSave = option;
fileSave = save;
}
}

Crean la clase Grid.java, compilan y ejecutan el main y listo.

1 comentario:

  1. Columbia's Titanium Boots
    ‎Siberian Clothing & Accessories, Shop for guy tang titanium toner Columbia's Titanium Boots at › Shop › Columbia › Shop › Columbia › Shop › Columbia › Shop › Columbia › titanium damascus knives Shop › Columbia › Shop › titanium dental implants and periodontics Columbia t fal titanium › Shop › Columbia › titanium athletics Shop › Columbia › Buy Columbia's newest luxury, quality clothing, and enjoy our exclusive Columbia's signature on-the-go-round.

    ResponderEliminar