Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Usuario Invitado

#81
Java / Re: Ayuda con Jcombobox
11 Junio 2015, 20:23 PM
El código es Swing, ¿de donde sacas que estoy usando AWT? Lo que es AWT son los eventos como es normal.
#82
Java / Re: Ayuda con Algoritmo de warshall
11 Junio 2015, 15:41 PM
Checkate un tuto de listas. De momento, te explico algo.

Una lista es un objeto que permite almacenar todo tipo de objetos. La manera de indicar qué tipo de valores es mediante Generics, que no es más que la firma que se le pone a una lista y que dice qué tipo de objetos almacenará. Por ejemplo:

Código (java) [Seleccionar]
List<Integer> numbers = new ArrayList<>();

Al hacer ésto indicas que la lista numbers solo aceptará números enteros. Si intentas ingresar un double o un String, no te dejará siquiera compilar, de ésta manera protegemos nuestra aplicación de errores en tiempos de ejecución.

Para agregar un valor, lo hacemos a través del método add:

Código (java) [Seleccionar]
numbers.add(10);

Para obtener un valor, lo hacemos a través de la posición, como en los arrays:

Código (java) [Seleccionar]
Integer number = numbers.get(0);

Puedes ordenar también una lista, con el método sort de la clase Collections:

Código (java) [Seleccionar]
Collections.sort(numbers);

Ordenará la lista en forma ascendete.

Puedes también ordenar una lista de forma que tú desees, utilizando el objeto Comparator:

Código (java) [Seleccionar]

Collections.sort(numbers, new Comparator() {
@Override
return int compare(Integer v1, Integer v2) {
return (v2.intValue() > v1.intValue()) ? 1 : -1;
}
});


El método anterior ordena una lista de forma descendente.

Tienes muchos métodos a disposición, puedes consultar la lista completa aquí


Saludos.
#83
Java / Re: Ayuda con Jcombobox
11 Junio 2015, 15:27 PM
Abrir una ventana de diálogo a través de JComboBox:

Código (java) [Seleccionar]
private YourClass that = this;

cboOrigin.addItemListener(new ItemListener(){
@Override
public void itemStateChanged(ItemEvent evt) {
if(evt.getStateChanged() == ItemEvent.SELECTED) {
String selected = String.valueOf(evt.getSelectedItem());
if(selected.equals("Centímetros a Metros")) {
// that = this. Será el padre de éste dialogo.
// Se bloqueará el frame hasta que se cierre el dialog
new CentimetersToMetersDialog(that);
}
}
}
});

public class CentimetersToMetersDialog extends JDialog {
/* ... */
}


Conversión:

Código (java) [Seleccionar]

private String origin;
private String target;

cboOrigin.addItemListener(new ItemListener(){
@Override
public void itemStateChanged(ItemEvent evt) {
if(evt.getStateChanged() == ItemEvent.SELECTED) {
origin = String.valueOf(evt.getSelectedItem());
cboTarget.setDisabled(false);
} else {
cboTarget.setDisabled(true);
}
}
});

cboTarget.addItemListener(new ItemListener(){
@Override
public void itemStateChanged(ItemEvent evt) {
if(evt.getStateChanged() == ItemEvent.SELECTED) {
target = String.valueOf(evt.getSelectedItem());
btnConvert.setDisabled(false);
} else {
btnConvert.setDisabled(true);
}
}
});

btnConvert.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
String fully = (origin + " " + target).toLowerCase();
Double toConvert = Double.parseDouble(txtNumber.getText());
                Double converted = 0.0d;
Converter converter = new Converter();

if(fully.contains("centimetros") && fully.contains("metros")) {
converted = converter.centimetersToMeters(toConvert);
}
if(fully.contains("centimetros") && fully.contains("pulgadas")) {
converted = converter.centimetersToInch(toConvert);
}
/* otras conversiones */
                txtResult.setText(converted);
}
});
#84
CitarCon cosas serias me refiero los núcleos, ya sea de juegos, de navegadores, de sistemas operativos. Aunque hayan podido mejorar un poco la máquina virtual de java, sigue consumiendo demasiado y no resulta útil para cosas críticas como esas

Agree. Utilizar Java para un núcleo no es buena idea. Lo mejor es utilizar C/C++ allí por cuestión de rendimiento.

Citarpero lo que vi comparándolo con C++ me pareció que aunque java tiene una librería estándar para cosas de sockets y demás (creo recordar), java se complicaba las cosas innecesariamente, supongo que para facilitar la vida a la máquina virtual?

Java en mi opinión es muy verboso, es por eso que da la idea de "complicarse". Algunas cosas, generalmente antes, se complicaban. Particularmente en Java EE < 6, donde recién empezaban las anotaciones a tomar lugar y las configs se hacían con puro XML.

CitarEn java también hay mucha oferta pero sobretodo a nivel de escritorio, y entonces comparándolo con otros lenguajes te limitas bastante.

Eso es el su mayoría de casos falso. Java se usa más para desarrollo web. Java EE incluye todo un set de tecnologías de alto nivel que facilita el desarrollo de aplicaciones web altamente eficientes y seguras.

Por experiencia, una aplicación bien programada como un sistema académico para escritorio escrita en JavaFX, no consumía más de 80MB. Claro, una en C++ te consume la mitad, pero prefiero no estar preocupándome por liberar memoria, punteros y todo eso que en producción es un dolor de cabeza terrible.

En web, tiene actualmente un muy buen rendimiento. La JVM ha sido bastante bien optimizada y en las últimas webapps Java que he podido manejar y observar, se comportan muy bien, sean con Spring MVC, o JSF.

CitarLa diferencia de Go con Ruby,Python, PHP etc es que es sencillo pero mucho más eficiente que PHP o python y demás. También es sencillo de aprender pero al ser nuevo no hay tanta documentación.

Agree. GO es un muy buen lenguaje. Es una lástima que aún no sea tan adoptado por la comunidad, pero le veo un muy buen futuro. También, NodeJS es una excelente opción que seguirá creciendo con el tiempo porque la comunidad detrás es gigante y muy activa, sin dejar de lado que JS es el lenguaje del futuro (según lo que dicen por allí...).

Creo que es conveniente aprender la mayor cantidad de tecnologías y/o lenguajes que podamos. No es bueno casarse con una sola tecnología, un programador completo tiene más oportunidad laboral.


Saludos.
#85
Java sirve para cosas serias y muy serias, @Stakewinner00, lo mismo que PHP, C# y C++. ¿En qué te basas para decirlo?

Go sí es bueno, también es Ruby, Python, Groovy, Scala y los antes mecionados. Si no hemos probado un lenguaje a fondo, no podemos simplemente decir "no sirve". Aunque a mí no me guste PHP, sé que es un lenguaje en el que se pueden hacer casi todas las cosas, aunque sea un lenguaje en parte mal diseñado.

¿Has usado WebSockets, Bean Validation, Spring MVC, JSF, JPA (ORM), JMS, EJB, etc? Pues son cosas diseñadas para hacer cosas "serias".
#86
Java / Re: Con que programais en Android ¿?
10 Junio 2015, 16:44 PM
Ve con Android Studio. Si se te dificulta el uso del IDE, puedes usar Eclipse si te sientes más cómodo con él. Pero usar Android Studio tiene sus ventajas.

Respecto a manuales no conozco uno bueno para recomendarte. He aprendido android en blogs y mirando StackOverFlow, también en YouTube, etc.


Saludos.
#87
Java / Re: Dibujar en un scrollpane
10 Junio 2015, 16:42 PM
Si has modularizado lo suficiente no deberías tener problemas.

Cada vez que bajas el scroll, se "repinta" el JPanel. Es por ésto, que debes de sobreescribir el método paintComponents y llamar al método que pinta el cuadro.

Código (java) [Seleccionar]
private void pintarCuadro() {
    /* creas el cuadro y lo pintas en el JPane */
}

public void paintComponent(Graphics g) {
   pintarCuadro();
}



Saludos.
#88
Yo soy programador Java EE y algo de PHP. Hace algún tiempo empecé a aprender NodeJS y AngularJS y la verdad, me he quedado enganchado.

Desde mi perspectiva como programador Java EE, NodeJS es demasiado sencillo. Routes, middlewares, etc, te facilitan mucho el desarrollo de aplicaciones web modernas. AngularJS por otro lado, es EL framework front end, no existe framework alguno que se le pueda comparar. El binding bidireccional, soporte para templates, estructuras de control dentro del html, hacen que mires con otros ojos el desarrollo web.

Utilizar NodeJS y AngularJS conjuntamente es genial. La interoperabilidad de ambos, al ser todo código javascript es insuperable. Ésto, combinado con HTML5, drag and drop, localstorage, webworkers, etc, te permiten realizar una verdadera aplicación web moderna. Todo trabaja conjuntamente sin entorpecerse.

AngularJS también lo puedo utilizar con Java EE, por ejemplo, para consumir RESTfuls, para usarlo con Spring MVC, etc.

Es obvio que como todo tiene sus contras, por ejemplo, es mucho más facil debuguear en Java y PHP. No existen muchos IDEs que den soporte al MEAN stack. Pero la comunidad NodeJS/AngularJS es vibrante, con muchas ideas nuevas por mejorar el ecosistema, eso por sí solo, te da la seguridad que ambas tecnologías seguirán por mucho tiempo más.

Respecto a IDEs, les recomiendo WebStorm de Jetbrains. Es un IDE muy bueno con soporte para NodeJS y AngularJS. Autocompletado muy bueno, entre otras características.

PHP, me parece un lenguaje feo. Su diseño interno deja mucho que desear, inconsistencias varias, en funciones, en convención de nombres, etc. Los frameworks como Symfony, Laravel o Zend, verdaderamente han salvado al lenguaje.


Saludos.
#89
Java / Re: Con que programais en Android ¿?
9 Junio 2015, 19:13 PM
Antes de la aparición de Android Studio, se programaba con Eclipse. Puedes usar ambos, pero mucho más provecho le sacarás a Android Studio, por la simple y llana razón que está basado en el mejor IDE existente para Java: IntelliJ IDEA, propiedad de Jetbrains. Además, es el estándar.
#90
No sé de donde han sacado el mito, pero Java no está muriendo para nada. De hecho, se ha incrementado su uso en las empresas.

No se puede comparar Java y C# porque son muy parecidos y hacen lo mismo. El problema con .NET es que aún luego de ser open source, estás por así decirlo, casado con los productos de la tecnología .NET.

Por ejemplo, cuando haces uso de Entity Framework, estás prácticamente obligado a usar SQL Server. No tiene soporte para MySQL o PostgreSQL.

WPF, solo funciona en Windows. No hay port ni lo habrá para GNU/Linux ni Mac. Ni con mono podrá correr en esas plataformas.

Por otro lado, Java es muy parecido a .NET. La razón de ser el lenguaje #1 según TIOBE en popularidad, es que con Java tu armas tu equipo de desarrollo. Los frameworks son interoperables unos con otros, puedes elegir a dedo en el mercado, algunos de muchos frameworks para Java, como Spring, JSF, Play!, Vaadin, OpenXava, etc.

Por ejemplo, Hibernate funciona con muchos motores de bases de datos. La API WebSockets es moderna y práctica. Bean validation, utilísimo al validar entidades antes de ser persistidas por JPA. EJB remotos (pueden llamarse desde otra JVM), WebServices, y mucho más.

Java ahora, es muy muy rápido. Lo lamentable es que los que no conocen Java piensen que Java es:

  • Muy lento
  • Swing

    Y eso es lo que no les permite al 90% de los usuarios principiantes, comprender su verdadero potencial: la web.

    El lenguaje debe ser una herramienta, no se casen con los lenguajes, entiendan ésto. Cada situación se adapta mejor a X lenguaje. Es por eso que deben conocer varios para hacer un software de calidad y a medida.

    Saludos.