Imagen

Bueno, estoy empezando a despegar de mi querido C++ para entrar en el mundo de Java.
Como siempre, aprender un nuevo lenguaje de programacion no es sencillo, por lo cual,
he decidido hacerlo de a poco sin salterme etapas. Utilizo Eclipse para Windows para la GUI de desarrollo.
Dejo el palabrerio de lado para mostrar mi primer code, un "simple" StrReverse. Cuenta con 3 archivos para separar y ser mas legible el code:

Código: Seleccionar todo

//StringReverse.Java
public class StringReverse {
	public static void main(String[] args){
		gui migui = new gui ();

	}
}

Código: Seleccionar todo

//gui.Java
import javax.swing.*; 
import java.awt.*;
import java.awt.event.*;


public class gui extends JFrame implements ActionListener {
	
	private JButton go;
	private JTextField text_orig;
	private JTextField text_dest;
	
	
	public gui(){
		super ("String Reverse by Osni");
		this.dibujarVentana();
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setSize(500, 100);
		this.setLocation(300, 100);
		this.setVisible(true);
		
	}
	
	public void dibujarVentana(){
		this.setLayout(new FlowLayout());
		text_orig = new JTextField(20);
		go = new JButton ("GO");
		text_dest = new JTextField(20);
		this.add(text_orig);
		this.add(text_dest);
		this.add(go);
		go.addActionListener(this);	
	}

	
	public void actionPerformed(ActionEvent arg0) {
		
		if (arg0.getSource()==go){
						
			text_dest.setText(Reverse.reversa(text_orig.getText()));
			
			}
	}
		
}

Código: Seleccionar todo

reverse.java
class Reverse {
	public static String reversa(String cadena) {
	  int i; 
	  int len = cadena.length();
	  StringBuffer dest = new StringBuffer(len);

	  for (i = (len - 1); i >= 0; i--)
	      dest.append(cadena.charAt(i));
	 return dest.toString();
	 }
}
Bueno, hasta ahí el code. Ahora tengo una duda importante
Cuando yo quiero exportar el codigo a .jar tengo 2 opciones...
1) package require libraries into generated jar
2) extract require libraries into generated jar

Tengo entendido que en la primera opcion (package) vienen incluidas dentro del jar las librerias, pero en ambos casos la aplicacion corre. Sera quizás, que en mi sencillo code no se ve la diferencia a nivel de ejecucion????
La diferencia "visible" es 2kb vs 9 kb.
Bueno, les dejo todo en un rar para que lo vean (source y ambos ejecutables)

Ok, por ahora eso es todo. Necesito criticas, consejos, etc. Bye
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
Imagen
Que bueno que le metas al JAVA hermano , ojala te conviertas
en un duro con este lenguaje........

PD: Vere si desempolvo el NetBeasn un dia de estos! xD
obey escribió:Pues si tuviese mas edad todavia pero esqe perder la virginidad con tu profesora de informatica y que ademas tenga 50....
dale duro al Java osnaraus =P un lenguaje muy tentador para aprender jeje, funciona perfecta tu primera aplicación... sigue así capo, que irás mejorando

saludos!!
Soy un camaleón, en tu cama, leona ♪
Pues el StringBuffer tiene un metodo para StringReverse

StringBuffer palabra = new StringBuffer("ALMABO");
palabra.reverse().toString();


saludos bro sigue asi, te recomiendo empieces con netbeans :)
Muy bien para empezar!

Eclipse no es una GUI [Interfaz gráfica para un usuario, Graphical User Interface] sino que es un IDE [Entorno De Desarrollo Integrado, Integrated Development Environment]. Es un marco de trabajo y no una mera interfaz =)

Código: Seleccionar todo

// No es necesario cargar toda la librería, es preferible importar sólo las clases que vamos a utilizar.

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

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;


@SuppressWarnings("serial")
public class gui extends JFrame {
   
	// No era necesaria la instanciación de las clases.
   
   public static void main(String[] args) {   
	   @SuppressWarnings("unused")
	   gui migui = new gui();
   }
   
   // Los métodos de las clases que no van a ser utilizados por fuera de ella deben ser privados, o sea, private.

   private gui() {
	   
      super ("String Reverse by Osni");
      
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      
      // Yo prefiero el método setBounds() pero eso va en gustos =)
      // this.setBounds(300, 100, 500, 100);
      this.setSize(500, 100);
      this.setLocation(300, 100);
      
      
      this.setVisible(true);
      this.setLayout(new FlowLayout());
      
      // No es necesario crear los componentes como atributos siendo que podemos crearlos directamente
      // desde el constructor gui() y ser accedidos por fuera de él con el modificador final.
      
      final JTextField text_orig = new JTextField(20);
      final JButton go = new JButton ("GO");
      final JTextField text_dest = new JTextField(20);
      
      this.add(text_orig);
      this.add(text_dest);
      this.add(go);
      
      // Instanciamos un nuevo ActionListener al botón go sin usar implements ya que solo implementaremos
      // un único método [actionPerformed] de esta clase. Al utilizar implements debemos sobreescribir
      // todos los métodos de la misma clase.
      
      go.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				if (e.getSource() == go){
					text_dest.setText(reversa(text_orig.getText()));
				}
			}  
      }); 
   }
   
   // Removemos el modificador static porque este método no se utilizará desde otra clase.
   
   private String reversa(String cadena) {
	   
	   // No usamos la variable len porque podemos utilizar directamente el método, y además
	   // no queremos almacenar su valor ya que este no cambiará durante el desarrollo de la
	   // aplicación.
	   
	    StringBuffer dest = new StringBuffer(cadena.length());
	    
	    // Es preferible definir la variable i dentro del bucle para que cuando finalice el bucle se destruya
	    // y no afecte a la memoria del sistema.
	    
	    for (int i = (cadena.length() - 1); i >= 0; i--)
	         dest.append(cadena.charAt(i));
	     
	    return dest.toString();
   }
}
Un saludo, cualquier duda avisáme osnaraus.
Imagen
Responder

Volver a “Otros lenguajes”