Recent Posts

Pages: [1] 2 3 ... 10
1
Java JSE / Re: que esta mal?
« Last post by jtoe78 on Agosto 18, 2017, 04:55:20 am »
Holas!!!
estuve revisando el codigo y creo que te mareaste un poco con los IF anidados. Asi mismo para cambiar el formato de salida del valor decimal (o mejor dicho: limitar la cantidad de decimales  ::) ) he cambiado la salida por un printf que recibe un String y una variable, lo veras mejor en el codigo que te paso donde creo arreglar tu problema.
Code: [Select]
double ind = ((peso) / (estatu * estatu));
System.out.printf("SU INDICE DE MASA CORPORAL ES: %.2f \n" ,ind );
if (ind < (18.50)) {
if (ind < (16.00)) {
System.out.println("USTED ESTA EN DELGADEZ SEVERA!!!");
}
if (ind >= (16.00) && ind <= (16.99)) {
System.out.println("USTED ESTA EN DELGADEZ MODERADA!!!");
}
if (ind >= (17.00) && ind <= (18.49)) {
System.out.println("USTED ESTA EN DELGADEZ LEVE!!!");
}
}

if (ind >= (18.5) && ind <= (24.99)) {
System.out.println("SU INDICE DE MASA CORPORAL ES NORMAL.");
} else if (ind >= (25.00) && ind < 29.99) {
System.out.println("USTED ESTA EN SOBRE PESO!!!");
} else {
if (ind > (30.00) && ind <= (34.99)) {
System.out.println("USTED ESTA EN OBESIDAD LEVE!!!");
} else {
if (ind >= (35.00) && ind <= (39.99)) {
System.out.println("USTED ESTA EN OBESIDAD MEDIA!!!");
} else {
System.out.println("USTED ESTA EN OBESIDAD MORBIDA");
}
}
}

Espero te sirva. Saludos
2
Java JSE / que esta mal?
« Last post by set95 on Agosto 17, 2017, 10:46:52 pm »
package indicemasa;

import java.util.Scanner;

public class IndiceMasa {

   public static void main(String[] args) {
      System.out.println("BIENVENIDO AL INDICADOR DE MASA CORPORAL!");
      System.out.print("INGRESE SU NOMBRE: ");
      Scanner scanner=new Scanner(System.in);
      String nombre = scanner.next();
      System.out.print("INGRESE SU NUMERO DE CEDULA: ");
      Scanner scanner2=new Scanner(System.in);
      double cc= scanner2 .nextDouble();
      System.out.print("INGRESE SU AÑO DE NACIMIENTO: ");
      Scanner scanner3=new Scanner(System.in);
      int año=scanner3 .nextInt();
      System.out.print("INGRESE SU PESO EN kg: ");
      Scanner scanner4=new Scanner(System.in);
      double peso= scanner4 .nextDouble();
      System.out.print("INGRESE SU ESTATURA EN M: ");
      Scanner scanner5=new Scanner(System.in);
      double    estatu= scanner5 .nextDouble();
       int caled=(2017-año);
       System.out.println("SU EDAD ES:"+caled+"años.");
       double ind=((peso)/(estatu*estatu));
       System.out.println("SU INDICE DE MASA CORPORAL ES: "+ind+".");
       if (ind<(18.50)) {
          System.out.println("USTED TIENE BAJO PESO!!!");         
      } else {
         
         if (ind<(16.00)) {
            System.out.println("USTED ESTA EN DELGADEZ SEVERA!!!");
         } else {
            
            if (ind>=(16.00) && ind<=(16.99) ) {
               System.out.println("USTED ESTA EN DELGADEZ MODERADA!!!");
            } else {
               
               if (ind>=(17.00) && ind<=(18.49)) {
                  System.out.println("USTED ESTA EN DELGADEZ LEVE!!!");
               } else {
                  
                  if (ind>=(18.5) && ind<=(29.99)) {
                     System.out.println("SU INDICE DE MASA CORPORAL ES NORMAL.");
                  } else {
                     
                     if (ind<=(25.00)) {
                        System.out.println("USTED ESTA EN SOBRE PESO!!!");
                     } else {
                        
                        if (ind>(25.00) && ind<=(29.99)) {
                           System.out.println("USTED ESTA PREOBESO!!!");
                        } else {
                           
                           if (ind>=(30.00)) {
                              System.out.println("USTED ESTA EN OBESIDAD!!!");
                           } else {
                              
                              if (ind>(30.00) && ind<=(34.99)) {
                                 System.out.println("USTED ESTA EN OBESIDAD LEVE!!!");
                              } else {
                                 
                                 if (ind>=(35.00) && ind<=(39.99)) {
                                    System.out.println("USTED ESTA EN OBESIDAD MEDIA!!!");
                                 } else {
                                    
                                    if (ind>=(40.00)) {
                                       System.out.println("USTED ESTA EN OBESIDAD MORBIDA");
                                    }

                                    
                                 }
                              }

                              }
                           }
                        }
                     
                  }
               }

            }
         }

      }
      

   }

}
3
Java JSE / Re: Identificador de Llamadas (JTapi)
« Last post by Jose87 on Agosto 16, 2017, 10:08:06 pm »
Me imagino que esto está ya más que desfasado, no?
4
Java JSE / Re: excluir indices de un array bidimensional
« Last post by jtoe78 on Julio 16, 2017, 05:00:45 am »
Guenas!!
No entendi muy bien a que te refieres pero...
si quieres excluir un indice especifico lo puedes hacer en tiempo de ejecucion cuando recorres la matriz: utiliza un if-continue dentro del for que recorre el array donde esta el indice a excluir
5
Java JSE / Re: Help! con JTextArea.setFont()
« Last post by jtoe78 on Julio 15, 2017, 11:35:53 pm »
Al final lo he resuelto!!! :o
Fue tan sencillo como sacar el metodo JTextArea.setFont() de la clase interna hacia la clase principal; la clase interna la deje solo para manejo de eventos y en ella instancio el selector de fuentes, al cerrar el selector de fuentes desde el boton de Aceptar se llama al metodo publico de la clase principal para setear la fuente antes de cerrar el selector.
Puede que suene algo atravezado pero ahora si puedo correr desnudo por mi casa  :o
Les pego los codigos de las tres clases que use en este "proyecto personal" a fin de que a alguien le pueda ser util...

La clase con el main
Code: [Select]
public class Notepad {

private JFrame window;
private JMenuBar barra;
private JMenu menuFile, menuEdit, menuView, menuHelp;
private JMenuItem itNuevo, itAbrir, itSave, itSaveAs, itClose;
private JMenuItem itFormat;
private JMenuItem itFondo, itFuente;
private JMenuItem itAbout;
private JScrollPane panel;
private static JTextArea area;

private final String titulo = "Editor de textos";
private String nameFile = "";
private File archivo = null;

private static Font fuente = null;

public Notepad() {
initComponents();
window.setTitle(titulo);
window.setSize(800, 600);
window.setResizable(false);
window.setVisible(true);
window.setLocationRelativeTo(null);
window.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
}

/**
* Metodo para inicializar componentes
*/
private void initComponents() {

// inicializa los elementos
window = new JFrame();

barra = new JMenuBar();

menuFile = new JMenu("Archivo");
menuEdit = new JMenu("Edicion");
menuHelp = new JMenu("Ayuda");

// items del menu Archivo
itNuevo = new JMenuItem("Nuevo");
itAbrir = new JMenuItem("Abrir");
itSave = new JMenuItem("Guardar");
itSaveAs = new JMenuItem("Guardar como");
itClose = new JMenuItem("Salir");
// items del menu Edicion
itFormat = new JMenuItem("Ajuste de Linea");
// items del menu Ayuda
itAbout = new JMenuItem("Acerca de");

// elementos de menu
menuFile.add(itNuevo);
menuFile.add(itAbrir);
menuFile.add(itSave);
menuFile.add(itSaveAs);
menuFile.add(itClose);

menuEdit.add(itFormat);

menuHelp.add(itAbout);

// añade menus en la barra
barra.add(menuFile);
barra.add(menuEdit);

menuView = new JMenu("Ver");
barra.add(menuView);
itFondo = new JMenuItem("Fondo");
menuView.add(itFondo);
itFuente = new JMenuItem("Fuentes");
menuView.add(itFuente);

barra.add(menuHelp);
// añade la barra a la ventana
window.setJMenuBar(barra);

// Crea un area de texto con scroll y lo añade a la ventana
area = new JTextArea();
//area.setFont(fuente);
panel = new JScrollPane(area);
window.getContentPane().add(panel);

// Gestion de eventos de ventana y menu
ManejoDeEventos eventos = new ManejoDeEventos();

window.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
if (eventos.descartar()) {
window.dispose();
}
}
});

itNuevo.addActionListener(eventos);
itAbrir.addActionListener(eventos);
itSave.addActionListener(eventos);
itSaveAs.addActionListener(eventos);
itClose.addActionListener(eventos);
itFormat.addActionListener(eventos);
itFuente.addActionListener(eventos);
itFondo.addActionListener(eventos);
itAbout.addActionListener(eventos);

}

/**
* Clase interna para el manejo de eventos de menu
*/
private class ManejoDeEventos implements ActionListener {

@Override
public void actionPerformed(ActionEvent evt) {
// Comprueba y limpia entorno
if (evt.getSource() == itNuevo) {
if (descartar()) {
area.setText("");
nameFile = "Nuevo";
window.setTitle(titulo + " - " + nameFile);
}
}
// Ofrece busqueda y abre archivo seleccionado
else if (evt.getSource() == itAbrir) {
if (descartar()) {
archivo = Selector.buscar();
if (archivo != null) {
try {
StringBuilder contenido = new StringBuilder();
BufferedReader out = new BufferedReader(new FileReader(archivo));
String parrafo;

while ((parrafo = out.readLine()) != null) {
contenido.append(parrafo).append("\n");
}
out.close();
area.setText(contenido.toString());
nameFile = archivo.getName();
window.setTitle(titulo + " - " + nameFile);

} catch (FileNotFoundException ex) {
JOptionPane.showMessageDialog(window, ex.getMessage(), "Error al abrir el archivo",
JOptionPane.ERROR_MESSAGE);
} catch (IOException ex) {
JOptionPane.showMessageDialog(window, ex.getMessage(), "Error al leer",
JOptionPane.ERROR_MESSAGE);
}
}
}
}
// Sobreescribe archivo preexistente
else if (evt.getSource() == itSave) {
try {
Scanner texto = new Scanner(area.getText());
BufferedWriter out = new BufferedWriter(new FileWriter(archivo));
String parrafo = "";
parrafo = texto.nextLine();
out.write(parrafo, 0, parrafo.length());
while (texto.hasNextLine()) {
parrafo = texto.nextLine();
out.newLine();
out.append(parrafo);
}
texto.close();
out.close();
JOptionPane.showMessageDialog(window, "Archivo guardado con exito");
} catch (IOException ex) {
JOptionPane.showMessageDialog(window, ex.getMessage(), "Error al guardar",
JOptionPane.ERROR_MESSAGE);
}
}
// Crea nuevo archivo y guarda contenido
else if (evt.getSource() == itSaveAs) {
archivo = Selector.guardar();

if (archivo != null) {
try {
Scanner texto = new Scanner(area.getText());
BufferedWriter out = new BufferedWriter(new FileWriter(archivo));
String parrafo = "";
parrafo = texto.nextLine();
out.write(parrafo, 0, parrafo.length());
while (texto.hasNextLine()) {
parrafo = texto.nextLine();
out.newLine();
out.append(parrafo);
}
texto.close();
out.close();

} catch (IOException ex) {
JOptionPane.showMessageDialog(window, ex.getMessage(), "Error al guardar",
JOptionPane.ERROR_MESSAGE);
}
}
} else if (evt.getSource() == itClose) {
if (descartar()) {
window.dispose();
}
}
// Provee ajuste de linea al entorno
else if (evt.getSource() == itFormat) {
area.setLineWrap(true);
}
// Muestra informacion acerca del soft
else if (evt.getSource() == itAbout) {
String soft = "Bloc de Notas";
String descripcion = "Realizado en Java por\nPablo Daniel Quiroga\n" + "revision 1.1";
JOptionPane.showMessageDialog(window, descripcion, soft, JOptionPane.INFORMATION_MESSAGE);
}
//Provee selector de color para el fondo
else if(evt.getSource() == itFondo){
Color newcolor = JColorChooser.showDialog(
window,
"Seleccione un nuevo fondo",
area.getBackground());
if(newcolor != null){
area.setBackground(newcolor);
}
}
//Provee selector de fuente
else if(evt.getSource() == itFuente){
@SuppressWarnings("unused")
FontChooser selecFont = new FontChooser();
}
}

/**
* Comprueba contenido y ofrece descartar
* @return boolean
*/
private boolean descartar() {
boolean opcion;
boolean contiene = !area.getText().isEmpty();
if (contiene) {
int x = JOptionPane.showConfirmDialog(window, "Desea descartar el contenido existente?");
if (x == JOptionPane.YES_OPTION) {
opcion = true;
} else {
opcion = false;
}
} else {
opcion = true;
}
return opcion;
}
}

public static void setFuente(Font x){
fuente = x;
area.setFont(fuente);
}

public static void main(String[] args) {
@SuppressWarnings("unused")
Notepad app = new Notepad();
}
}

El selector de archivos...
Code: [Select]
public class Selector {

private static File archivo = null;
    private static JFileChooser selector = new JFileChooser();
   
    //buscar de archivo
    public static File buscar() {
        selector.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
        int val = selector.showOpenDialog(null);

        if (val == JFileChooser.APPROVE_OPTION) {
            archivo = selector.getSelectedFile();
        }

        return archivo;
    }

    //guardar archivo
    public static File guardar(){   
    int val = selector.showSaveDialog(null);
    File nuevo = null;
   
    if(val == JFileChooser.APPROVE_OPTION){
    nuevo = new File(selector.getSelectedFile().getPath());
    JOptionPane.showMessageDialog(null, "Archivo guardado correctamente"); 
    }
   
    return nuevo;
    }
}

y finalmente el selector de fuentes  :-\ ...
Code: [Select]
public class FontChooser extends JFrame {

private JLabel sampleText = new JLabel("Label");
private static JComboBox<String> fontComboBox;
private static JComboBox<Integer> sizeComboBox;
private static JCheckBox boldCheck, italCheck;
private JButton btnAceptar;
private String[] fonts;

private static Font f;
public static boolean bandera = false;

public FontChooser() {
f = new Font("Arial", Font.PLAIN, 12);

setTitle("Selector de fuente");
setSize(550, 150);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

JPanel panelTexto = new JPanel();
panelTexto.setLayout(new FlowLayout(FlowLayout.CENTER));
panelTexto.add(sampleText);

add(panelTexto, BorderLayout.NORTH);

GraphicsEnvironment g = GraphicsEnvironment.getLocalGraphicsEnvironment();
fonts = g.getAvailableFontFamilyNames();

JPanel controlPanel = new JPanel();
fontComboBox = new JComboBox<>(fonts);
controlPanel.add(new JLabel("Family: "));
controlPanel.add(fontComboBox);

Integer[] sizes = { 7, 8, 9, 10, 11, 12, 14, 18, 20, 22, 24, 36 };
sizeComboBox = new JComboBox<>(sizes);
sizeComboBox.setSelectedIndex(5);
controlPanel.add(new JLabel("Size: "));
controlPanel.add(sizeComboBox);

boldCheck = new JCheckBox("Bold");
controlPanel.add(boldCheck);

italCheck = new JCheckBox("Ital");
controlPanel.add(italCheck);

btnAceptar = new JButton("Aceptar");
controlPanel.add(btnAceptar);

add(controlPanel, BorderLayout.SOUTH);

setVisible(true);
setLocationRelativeTo(null);

//Manejo de eventos
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
dispose();
}
});
fontComboBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
updateText();
}
});
sizeComboBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
updateText();
}
});
boldCheck.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
updateText();
}
});
italCheck.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
updateText();
}
});
btnAceptar.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
cerrar();
}
});

}
//Setea fuente en bloc de notas y cierra
public void cerrar(){
Notepad.setFuente(sampleText.getFont());
this.dispose();

}
//Actualiza la vista de ejemplo
public void updateText() {
setFuente();
sampleText.setFont(f);
}
//Setea nueva fuente
public void setFuente(){
String name = (String) fontComboBox.getSelectedItem();
Integer size = (Integer) sizeComboBox.getSelectedItem();
int style;
if (boldCheck.isSelected() && italCheck.isSelected()){
style = Font.BOLD | Font.ITALIC;
}
else if (boldCheck.isSelected()){
style = Font.BOLD;
}
else if (italCheck.isSelected()){
style = Font.ITALIC;
}
else{
style = Font.PLAIN;
}

f = new Font(name, style, size.intValue());
}


}

Hasta la proxima!!
6
Java JSE / Re: Help! con JTextArea.setFont()
« Last post by jtoe78 on Julio 15, 2017, 08:03:54 pm »
Buenos dias!
He probado lo que has dicho acerca de refrescar el JtextArea y sigue sin funcionar. Creo que el problema esta en que el selector de fuentes no le esta pasando a la clase principal la variable Font; como aun no entiendo bien el depurador, tocara hacer unas variables de control a ver que es lo que esta pasando.
Les pego abajo el codigo de mi selector de fuentes.
Ahora entiendo cuando leo en muchos foros que todos los programadores terminan medicados al depurar jajaja

Code: [Select]
public class FontChooser extends JFrame {

private JLabel sampleText = new JLabel("Label");
private JComboBox<String> fontComboBox;
private JComboBox<Integer> sizeComboBox;
private JCheckBox boldCheck, italCheck;
private JButton btnAceptar;
private String[] fonts;

private Font f;

public FontChooser() {

f = new Font("Arial", Font.PLAIN, 12);

setTitle("Selector de fuente");
setSize(550, 150);
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

JPanel panelTexto = new JPanel();
panelTexto.setLayout(new FlowLayout(FlowLayout.CENTER));
panelTexto.add(sampleText);

add(panelTexto, BorderLayout.NORTH);

GraphicsEnvironment g = GraphicsEnvironment.getLocalGraphicsEnvironment();
fonts = g.getAvailableFontFamilyNames();

JPanel controlPanel = new JPanel();
fontComboBox = new JComboBox<>(fonts);
controlPanel.add(new JLabel("Family: "));
controlPanel.add(fontComboBox);

Integer[] sizes = { 7, 8, 9, 10, 11, 12, 14, 18, 20, 22, 24, 36 };
sizeComboBox = new JComboBox<>(sizes);
sizeComboBox.setSelectedIndex(5);
controlPanel.add(new JLabel("Size: "));
controlPanel.add(sizeComboBox);

boldCheck = new JCheckBox("Bold");
controlPanel.add(boldCheck);

italCheck = new JCheckBox("Ital");
controlPanel.add(italCheck);

btnAceptar = new JButton("Aceptar");
controlPanel.add(btnAceptar);

add(controlPanel, BorderLayout.SOUTH);

setVisible(true);
setLocationRelativeTo(null);

//Manejo de eventos
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
dispose();
}
});
fontComboBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
updateText();
}
});
sizeComboBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
updateText();
}
});
boldCheck.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
updateText();
}
});
italCheck.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
updateText();
}
});
btnAceptar.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
setFuente();
dispose();
//JOptionPane.showMessageDialog(null, f);
}
});

}

public void updateText() {
setFuente();
sampleText.setFont(f);
}

public void setFuente(){
String name = (String) fontComboBox.getSelectedItem();
Integer size = (Integer) sizeComboBox.getSelectedItem();
int style;
if (boldCheck.isSelected() && italCheck.isSelected()){
style = Font.BOLD | Font.ITALIC;
}
else if (boldCheck.isSelected()){
style = Font.BOLD;
}
else if (italCheck.isSelected()){
style = Font.ITALIC;
}
else{
style = Font.PLAIN;
}

f = new Font(name, style, size.intValue());
}

public Font getFuente(){
return f;
}

}
7
Java JSE / Re: Help! con JTextArea.setFont()
« Last post by chuidiang on Julio 15, 2017, 02:47:14 pm »
Hola:

No he probado, es posible que sea necesario hacer un "refresco". Prueba a llamar al método updateUI() del JTextArea después de haber cambiado la fuente.

Saludos.
8
Java JSE / Help! con JTextArea.setFont()
« Last post by jtoe78 on Julio 15, 2017, 12:53:49 am »
Güenas!!
El proble es el siguiente: estoy armando un "notepad" basico y al agregarle la funcionalidad para cambiar el tipo de fuente, si bien me muestra el selector, no hay cambios en el JTextArea.
Les pego el codigo a ver si alguien me echa un salvavidas  :-[
Nota: el evento que llama al selector de fuente esta casi al final

Code: [Select]
public class Notepad {

private JFrame window;
private JMenuBar barra;
private JMenu menuFile, menuEdit, menuView, menuHelp;
private JMenuItem itNuevo, itAbrir, itSave, itSaveAs, itClose;
private JMenuItem itFormat;
private JMenuItem itFondo, itFuente;
private JMenuItem itAbout;
private JScrollPane panel;
private static JTextArea area;

private final String titulo = "Editor de textos";
private String nameFile = "";
File archivo = null;

private Font fuente;

public Notepad() {
fuente = new Font("Arial", Font.PLAIN, 11);
initComponents();
window.setTitle(titulo);
window.setSize(800, 600);
window.setResizable(false);
window.setVisible(true);
window.setLocationRelativeTo(null);
window.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
}

/**
* Metodo para inicializar componentes
*/
private void initComponents() {

// inicializa los elementos
window = new JFrame();

barra = new JMenuBar();

menuFile = new JMenu("Archivo");
menuEdit = new JMenu("Edicion");
menuHelp = new JMenu("Ayuda");

// items del menu Archivo
itNuevo = new JMenuItem("Nuevo");
itAbrir = new JMenuItem("Abrir");
itSave = new JMenuItem("Guardar");
itSaveAs = new JMenuItem("Guardar como");
itClose = new JMenuItem("Salir");
// items del menu Edicion
itFormat = new JMenuItem("Ajuste de Linea");
// items del menu Ayuda
itAbout = new JMenuItem("Acerca de");

// elementos de menu
menuFile.add(itNuevo);
menuFile.add(itAbrir);
menuFile.add(itSave);
menuFile.add(itSaveAs);
menuFile.add(itClose);

menuEdit.add(itFormat);

menuHelp.add(itAbout);

// añade menus en la barra
barra.add(menuFile);
barra.add(menuEdit);

menuView = new JMenu("Ver");
barra.add(menuView);
itFondo = new JMenuItem("Fondo");
menuView.add(itFondo);
itFuente = new JMenuItem("Fuentes");
menuView.add(itFuente);

barra.add(menuHelp);
// añade la barra a la ventana
window.setJMenuBar(barra);

// Crea un area de texto con scroll y lo añade a la ventana
area = new JTextArea();
area.setFont(fuente);
panel = new JScrollPane(area);
window.getContentPane().add(panel);

// Gestion de eventos de ventana y menu
ManejoDeEventos eventos = new ManejoDeEventos();

window.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
if (eventos.descartar()) {
window.dispose();
}
}
});

itNuevo.addActionListener(eventos);
itAbrir.addActionListener(eventos);
itSave.addActionListener(eventos);
itSaveAs.addActionListener(eventos);
itClose.addActionListener(eventos);
itFormat.addActionListener(eventos);
itFuente.addActionListener(eventos);
itFondo.addActionListener(eventos);
itAbout.addActionListener(eventos);

}

/**
* Clase interna para el manejo de eventos de menu
*/
private class ManejoDeEventos implements ActionListener {

@Override
public void actionPerformed(ActionEvent evt) {
// Comprueba y limpia entorno
if (evt.getSource() == itNuevo) {
if (descartar()) {
area.setText("");
nameFile = "Nuevo";
window.setTitle(titulo + " - " + nameFile);
}
}
// Ofrece busqueda y abre archivo seleccionado
else if (evt.getSource() == itAbrir) {
if (descartar()) {
archivo = Selector.buscar();
if (archivo != null) {
try {
StringBuilder contenido = new StringBuilder();
BufferedReader out = new BufferedReader(new FileReader(archivo));
String parrafo;

while ((parrafo = out.readLine()) != null) {
contenido.append(parrafo).append("\n");
}
out.close();
area.setText(contenido.toString());
nameFile = archivo.getName();
window.setTitle(titulo + " - " + nameFile);

} catch (FileNotFoundException ex) {
JOptionPane.showMessageDialog(window, ex.getMessage(), "Error al abrir el archivo",
JOptionPane.ERROR_MESSAGE);
} catch (IOException ex) {
JOptionPane.showMessageDialog(window, ex.getMessage(), "Error al leer",
JOptionPane.ERROR_MESSAGE);
}
}
}
}
// Sobreescribe archivo preexistente
else if (evt.getSource() == itSave) {
try {
Scanner texto = new Scanner(area.getText());
BufferedWriter out = new BufferedWriter(new FileWriter(archivo));
String parrafo = "";
parrafo = texto.nextLine();
out.write(parrafo, 0, parrafo.length());
while (texto.hasNextLine()) {
parrafo = texto.nextLine();
out.newLine();
out.append(parrafo);
}
texto.close();
out.close();
JOptionPane.showMessageDialog(window, "Archivo guardado con exito");
} catch (IOException ex) {
JOptionPane.showMessageDialog(window, ex.getMessage(), "Error al guardar",
JOptionPane.ERROR_MESSAGE);
}
}
// Crea nuevo archivo y guarda contenido
else if (evt.getSource() == itSaveAs) {
archivo = Selector.guardar();

if (archivo != null) {
try {
Scanner texto = new Scanner(area.getText());
BufferedWriter out = new BufferedWriter(new FileWriter(archivo));
String parrafo = "";
parrafo = texto.nextLine();
out.write(parrafo, 0, parrafo.length());
while (texto.hasNextLine()) {
parrafo = texto.nextLine();
out.newLine();
out.append(parrafo);
}
texto.close();
out.close();

} catch (IOException ex) {
JOptionPane.showMessageDialog(window, ex.getMessage(), "Error al guardar",
JOptionPane.ERROR_MESSAGE);
}
}
} else if (evt.getSource() == itClose) {
if (descartar()) {
window.dispose();
}
}
// Provee ajuste de linea al entorno
else if (evt.getSource() == itFormat) {
area.setLineWrap(true);
}
// Muestra informacion acerca del soft
else if (evt.getSource() == itAbout) {
String soft = "Bloc de Notas";
String descripcion = "Realizado en Java por\nPablo Daniel Quiroga\n" + "revision 1.1";
JOptionPane.showMessageDialog(window, descripcion, soft, JOptionPane.INFORMATION_MESSAGE);
}
//Provee selector de color para el fondo
else if(evt.getSource() == itFondo){
Color newcolor = JColorChooser.showDialog(
window,
"Seleccione un nuevo fondo",
area.getBackground());
if(newcolor != null){
area.setBackground(newcolor);
}
}
//Provee selector de fuente
else if(evt.getSource() == itFuente){
//TODO aun no me toma la nueva fuente
FontChooser selector = new FontChooser();
fuente = selector.getFuente();
area.setFont(fuente);
}
}

/**
* Comprueba contenido y ofrece descartar
* @return boolean
*/
private boolean descartar() {
boolean opcion;
boolean contiene = !area.getText().isEmpty();
if (contiene) {
int x = JOptionPane.showConfirmDialog(window, "Desea descartar el contenido existente?");
if (x == JOptionPane.YES_OPTION) {
opcion = true;
} else {
opcion = false;
}
} else {
opcion = true;
}
return opcion;
}
}

//TEST
public static void main(String[] args) {
Notepad app = new Notepad();
}
}
9
Java JSE / Re: Como llamar de un contructor con parametro a uno sin parametros
« Last post by gacs on Julio 12, 2017, 03:22:11 am »
ah ok gracias sensei, pasa lo mismo que el metodo super(), solo es para la primera linea.
10
Java JSE / Re: Como llamar de un contructor con parametro a uno sin parametros
« Last post by chuidiang on Julio 12, 2017, 02:46:28 am »
Hola:

Puedes hacerlo, pero la llamada al constructor sin parámetros debe ser la primera línea de código dentro del constructor con parámetros. No puedes llamarlo si ya has empezado a hacer otras cosas.

Saludos
Pages: [1] 2 3 ... 10
ey