elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Mensajes
Páginas: [1]
1  Programación / Java / ayuda con un panel en: 11 Junio 2014, 02:19 am
buenas quiero hacer mis practicas mas vistosas. asi que en vez de usar el tipico panel de JOptionPane.showInputDialog(null, "Introduce el primer coeficiente:")

Quiero hacer un panel mas vistoso.

el poblema es que aun no lo controlo bien la programacion se me escapan algunos detalles y me dan error.

Codigo segun lo tengo echo.

Código:
public class tema2 {
    public static void main(String[] args) {
//ejercicio de concepto básicos

JOptionPane.showMessageDialog(null, "Descripción: Pedir los coeficientes de una ecuación se 2º grado, y muestre sus soluciones reales.\nsi no existen, debe indicarlo.");
                /* lo tengo desabilitado porque no me funciona la frame que quiero se que cuando meta todo lo que quiero solo tiene que aparecer lo del comentario.
                frame1 obj = new frame1 ();
                obj.setVisible(true);
                obj.setLocationRelativeTo(null);
                */

                double a=Double.parseDouble(JOptionPane.showInputDialog(null, "Introduce el primer coeficiente:"));
                double b=Double.parseDouble(JOptionPane.showInputDialog(null, "Introduce el segundo coeficiente:"));
                double c=Double.parseDouble(JOptionPane.showInputDialog(null, "Introduce el tercero coeficiente:"));
                double d = b * b - 4 * a * c ;
                if (d<0){
                    JOptionPane.showMessageDialog(null, "No existe soluciones Reales");
                }else{
                double x1 = (-b+Math.sqrt(d))/(2*a);
                double x2 = (-b-Math.sqrt(d))/(2*a);
                JOptionPane.showMessageDialog(null, "Los resultados de x1 y x2 es:\n\nResultado x1= "+x1+"\nresultado x2= "+x2);
                }

veamos la explicacion, quiero que en vez de salir ventanitas pidiendome los datos y despues que me de los mensajes de los resultados. quiero que en esta ventana me haga todo.

Código:
public class frame1 extends javax.swing.JFrame {

    private double a;
    private double c;
    private double b;
    private double x1;
    private double x2;
    private double d;
    private boolean correcto;

    public frame1() {
        initComponents();
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        jTextField1 = new javax.swing.JTextField();
        jTextField2 = new javax.swing.JTextField();
        jTextField3 = new javax.swing.JTextField();
        jTextField4 = new javax.swing.JTextField();
        jTextField5 = new javax.swing.JTextField();
        jTextField6 = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("ejercicio1");

        jLabel1.setText("Introduzca primer coeficiente:");

        jLabel2.setText("Introduzca segundo coeficiente:");

        jLabel3.setText("Introduzca tercero coeficiente:");

        jLabel4.setText("Soluciones Reales:");

        jLabel5.setText("Soluciono:");

        jLabel6.setText("Soluciono:");

        jTextField1.setEditable(false);
        jTextField1.setBackground(new java.awt.Color(255, 204, 255));
        jTextField1.setText("0");
        jTextField1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField1ActionPerformed(evt);
            }
        });

        jTextField2.setEditable(false);
        jTextField2.setBackground(new java.awt.Color(255, 204, 255));
        jTextField2.setText("0");
        jTextField2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField2ActionPerformed(evt);
            }
        });

        jTextField3.setEditable(false);
        jTextField3.setBackground(new java.awt.Color(204, 255, 204));
        jTextField3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField3ActionPerformed(evt);
            }
        });

        jTextField4.setText("0");
        jTextField4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField4ActionPerformed(evt);
            }
        });

        jTextField5.setText("0");
        jTextField5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField5ActionPerformed(evt);
            }
        });

        jTextField6.setText("0");
        jTextField6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField6ActionPerformed(evt);
            }
        });

        jButton1.setText("Comprobar");
        jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jButton1MouseClicked(evt);
            }
        });

        jButton2.setText("Volver a los ejercicios");
        jButton2.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jButton2MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel4)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel5)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(layout.createSequentialGroup()
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jLabel2)
                                    .addComponent(jLabel3)
                                    .addComponent(jLabel1))
                                .addGap(29, 29, 29)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                    .addComponent(jTextField5, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 66, Short.MAX_VALUE)
                                    .addComponent(jTextField4, javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jTextField6)))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel6)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jButton2)
                                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE))))
                        .addGap(0, 0, Short.MAX_VALUE)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(jTextField5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3)
                    .addComponent(jTextField6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel4)
                    .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(46, 46, 46)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel5)
                    .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel6)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 18, Short.MAX_VALUE)
                .addComponent(jButton2)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>                        

    private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {                                            
            
    }                                          

    private void jTextField2ActionPerformed(java.awt.event.ActionEvent evt) {                                            
        
    }                                          

    private void jTextField3ActionPerformed(java.awt.event.ActionEvent evt) {                                            
        
    }                                          

    private void jTextField4ActionPerformed(java.awt.event.ActionEvent evt) {                                            
        a="";
    }                                          

    private void jTextField5ActionPerformed(java.awt.event.ActionEvent evt) {                                            
        b="";
    }                                          

    private void jTextField6ActionPerformed(java.awt.event.ActionEvent evt) {                                            
        c="";
    }                                          

    private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {                                      
        d = b * b - 4 * a * c ;
        correcto = d < 0 ;
        x1 = (-b+Math.sqrt(d))/(2*a);
        x2 = (-b-Math.sqrt(d))/(2*a);
                
    }                                    

    private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {                                      
        
    }                                    

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(frame1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(frame1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(frame1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(frame1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                new frame1().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                    
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField2;
    private javax.swing.JTextField jTextField3;
    private javax.swing.JTextField jTextField4;
    private javax.swing.JTextField jTextField5;
    private javax.swing.JTextField jTextField6;
    // End of variables declaration                  
}

cuando meta los tres datos y de a comprovar
en el renglon soluciones reales me diga correcto o erroneo. y en las dos de abajo que me de los dos resultados.

alguien que me adapte el codigo o que me diga como se hace para aprender de una maldita vez. que el profesor que tengo en el curso a distancia no me hace caso.
2  Programación / Java / Re: Acceder a pagina web con user y pass desde Java en: 9 Junio 2014, 18:41 pm
he encontrado una informacion buena. si quieres echarle un vistazo

http://www.webtaller.com/construccion/lenguajes/java/lecciones/como_conectar_java_access.php

yo en cuanto tengo un poco de tiempo me pondre a estudiarla y si veo que no pones que lo as resuelto te pondre el cogique que guenere auque seria bueno saver la direcion a la que quieres conectar.
3  Programación / Java / Re: Acceder a pagina web con user y pass desde Java en: 9 Junio 2014, 18:33 pm
aun estoy aprendiendo y a esa parte aun no he llegado. pero por logica y usando el pseudocodigo para que se entienda lo que quieres hacer.

yo te dejo un ejemplo aver si es lo que quieres hacer.

Código:
1º abrir aplicacion.
2º introducir en un campo usuario.
3º introducir en un segundo campo clave.
4º dar a voton de conectar.
5º automaticamente  te abre el navegador predeterminado.
6º introduce en el campo usuario el usuario ya introducido en la aplicacion.
7º introduce en el campo password la clave ya introducida en la aplicacion.
8º Da a entrar en la web.

este seria el sistema.

te dejo varios codigos, yo imvestigare, si encuentro algo o consigo hacer un codigo te aviso.

http://www.javamexico.org/foros/java_enterprise/conectar_mi_aplicacion_java_una_pagina_de_internet_donde_se_encuentra_mi_base_

Código:
public void conectar() {
Connection conexion = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conexion = DriverManager.getConnection("jdbc:mysql://databasered4.dyndns.org:90/respaldo", "user", "password");
} catch (SQLException e) {
System.out.println("Error de MySQL: " + e.getMessage()+" "+e);
} catch (Exception e) {
System.out.println("Error inesperado: " + e.getMessage()+" "+e);
}
}

http://www.lawebdelprogramador.com/foros/Java/1395253-conectar_una_aplicacion_escritorio_con_una_base_de_datos_alojada_en_un_Hosting.html

Código:
public static Connection Conexion()throws Exception
{
Connection conn = null;
try
{
String url = "jdbc:postgresql://45.87.32.159:5432/BaseDatos";
String usuario = "louis";
String password = "1234";
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(url,usuario,password);
}
catch(Exception ex)
{
ex.toString();
JOptionPane.showMessageDialog(null, ex.toString());
}
return conn;
}
4  Programación / Java / Re: opinion de porque usar java en: 9 Junio 2014, 18:13 pm
si ver mi tutorial hay hay dos imagenes que expresan las diferencia por ejemplo con el lenguaje c++.

el un lenguaje de mucho escribir. el copiar y pegar significa que ya lo abien escrito o lo an recopilado de otra aplicacion parecida, hay que tener en cuenta que los videotutoriales tiene el incomveniente del tiempo, no pueden pasasrse media ora escriviendo y despues ponerse a explicar.

aunque para movil cambia si aprendes el del pc despues te resulta mas facil aprender el java para moviles o incluso pasarte al android.

java yo veo que es un codigo que aun no se le a explotado lo suficiente, aun podria hacer mucho mas. el poblema es que en un mundo que esta cambiando constantemente, es dificil segir el ritmo.

tambien e de decir que hay codigos que se abandonan porque salen otros mas fuertes pero java lleva años actualizandose, y por el momento sigue adelante.
5  Programación / Java / Aprende a programar con Java - Tema 2 en: 9 Junio 2014, 15:15 pm
tema 2


El codigo del ejercicio correspondiente al tema.
Código:
                Terminando el codigo, en cuanto lo tenga lo subo

para empezar os dire que en la programacion es esencial simplificar todo el codigo aorando setencias y lines. porque? porque cuanto mas lineas mas pesado es el archivo y cuanto mas setencias mas lento.

para que lo entendais el ejemplo que he puesto ariba he puesto una setencia multiple en una sola linea.

normalmente llamariamos a la variable, perdiriamos al usuario que introdujera el valor en String y despues lo comvertiriamos al tipo de variable deseado.

codigo sin simplificar
Código:
// Variables
String entrada, entrada2;
double numero, numero2;
// Introducir datos
entrada = JOptionPane.showInputDialog(null, "Introduce el primer numero:")
entrada2 = JOptionPane.showInputDialog(null, "Introduce el segundo numero:")
//combertir datos
numero = Double.parseDouble(entrada)
numero2 = Double.parseDouble(entrada2)


codigo simplificado
Código:
//nombras las variables, Pides que se introduzca los datos, y los comvierte.
double num1 = Double.parseDouble(JOptionPane.showInputDialog(null, "Introduce el primer numero:"));
double num2 = Double.parseDouble(JOptionPane.showInputDialog(null, "Introduce el segundo numero:"));

una vez aclarado el tema de simplificar el codigo lo prometido.

Constantes

son Variables especiales. estos una vez son asignados un valor, este permanece inmutable asta que se termina la aplicacion.

una anotacion es que por general se escrive el nombre de las constantes en mayusculas. pero no es obligatorio, pero dificulta la lectura del codigo en caso de que se tenga que revisar.

Código:
final <tipo> <NOMBRE DE LA CONSTANTE>

¿Como nombrar las variables?

Es importante decir que hay una normas.
Java es capaz de diferenciar entre mayusculas y nimusculas. asi que si ponemos edad o Edad, son variables diferentes porlo que si cambiamos alguna letra esto podria producir un error de sintasis.

- Comienzan siempre por una letra, un subrayado "_" o un dolar "$".
- Los siguientes caracteres pueden ser letras, digitos, subrayado o dolar.
- Se hace distincion entre mayusculas y minusculas.
- No hay una longitud maxima para el identificador.


Ya que estamos ablando de las varialbes. hay que ver que operaciones se pueden realizar con ellas.

Operaciones basicas

- Operadores de asignacion -

Simbolo "=" este asigna un valor a la variable. en caso de tener variable la camvia por la que estas introduciendo.

Código:
a = 123
a = JOptionPane.showInputDialog(null, "Introduce un numero:")

en cuanto aranca el programa "a" se le asigna el valor 123 pero en cuanto el usuario introduce un valor en el mensaje que le sale solicitando un numero este cambia al valor introducido.

si no se le pone algun valor al inicio, en java este permanece sin valor, impidiendo que uses esa variable asta que le asignes uno. en cambio con otros lenguajes eso camvia, por ejemplo c este da un valor aleatorio.

- Operadores aritmeticos -

son las operaciones de toda la vida: +,-,*,/,%,++,--
en el tema uno deje una captura de la tabla.

- Operadores relacionales -

estos dan solo dos resultados true o false.
hay que estar atentos porque aveces se comete el error de usar el operadores de asignacion = en vez de usar el de comparacion ==

es la tabla que salen los sigos ==,!=,<,<=,>=,> que se encuentra en el tema 1.

- Operadores logicos -

usan el mismo sistema que las relacionales, pero con la diferencia que son mas complejas.

ejemplo
Código:
a=3;
b=5;
c=2;
d=d;
(a <= b && c == d);
a es menor  o igual que b? Si
c es igual que d? Si
Al ser las dos Si y estar unidas con && esto toma un valor de true.

esto corresponde con la tabla que salen &&,||,!

- Operadores a nivle de bit -

estos son mas complejos asi que pongo un ejemplo y os pongo la tabla para que no os equivoqueis.



Código:
79 & 24 = 01001111 & 00011000 = 00001000 = 8
79 || 24 = 01001111 || 00011000 = 01011111 = 95
79 ^ 24 = 01001111 ^ 00011000 = 01010111 = 87
(es el que tiene encima de la Ñ que no me sale) 79 = 01001111 = 10110000 = 80
79 << 2 = 01001111 << 00 = 00111100 = 6
79 >> 3 = 01001111 >> 000 = 00001001 = 9

- operandos opera y asigna -

estos se usan cuando quieres operar con la misma variable.

ejemplo
Código:
var += 3;
// es los mismo que escribirlo asi:
var = var + 3;

la tabla la teneis en el tema 1.

- Procedencia -
la tabla es la mas grande que esta en el tema 1 hay no hay mucho que explicar en la imagen viene todo

Comentarios

Es vueno el pomer identificar bloques, o simplemente destacar cosas importantes, cuando se trabaja en equipo, o simplemente es que despues quieres compartir el codigo. para eso se usan los comentarios.

hay diferententes tipos de comentarios:
- Comentario multilinea: se usa para cuando quieres poner un texto que va a ocupar varias lineas, o simplemente quieres anular una parte del codigo.

Código:
/* este es un comentario miltilenea.
porque se encuentra entre los signos / * * /
este comentario empieza con / *
y termina con */

- Comentario hasta final de linea: se usa al igual que el anterior pero solo se comvierte una linea en comentario

el ejemplo lo teneis ariba en la parte que esplico lo de simplificar el codigo.

- Comentario de documento: es igual que el de multilinea con la diferencia que al pricipio es /** y este si aparece en caso de usar alguna herramienta de generacion automatica de documentacion.


El tema lo voy actualizando cuando este complero pasare el corrector para quitar las faltas de ortografia. perdon por las molestias
6  Programación / Java / Aprende a programar con Java en: 8 Junio 2014, 01:28 am
Aprende a programar con Java
Un enfoque practico partiendo de cero.

Constara de 14 temas. ire actualizando para que quede todo en la primera hoja.

Como a empezado una disputa de que si java es mejor o peor. aqui dejo unos graficos que porsi ablan solo.




Tema 1

[spoiler]

Para empezar a programar lo más importante es las herramientas de trabajo.
Un ordenador, que tengo suficiente capacidad y un buen rendimiento.  El no tenerlo nos puede provocar que no nos funcione lo rápido que deseamos las aplicaciones que creemos.

Os recomiendo NetBeans IDE 8.0 ya que viene todo lo necesario; librerías, copiladores....
Para hacer gráficos y pantallas hay otras aplicaciones que dan más variedad pero son más difíciles de realizar y después acoplarlas a nuestros proyectos.

Aplicare poca teoría, ya que la mejor manera es con ejemplos, no usar copiar y pegar. Sino leer, pasarlo a un cuaderno, y después escribirlo en el programa. Así se os queda mejor los códigos, y la manera de como se expresan.

Aquí el código del tema 1.



Código:

import javax.swing.*;
//By DareK17
public class practica1 {
    public static void main(String[] args) {
//ejercicio de concepto básicos
        int elecion;
        do {
            elecion = Integer.parseInt(JOptionPane.showInputDialog("Bienvenido a mi primera aplicación.\n" +
 "Tema 1\n\n" + "Por favor elija una opción:\n" + "Ejercicios de concepto básico.\n" + "1.            Ejercicio 1.1\n" +
"2.            Ejercicio 1.2\n" + "3.            Ejercicio 1.3\n" + "4.            Ejercicio 1.4\n" +  "5.            Ejercicio 1.5\n" +
 "6.            Ejercicio 1.6\n" + "7.            Ejercicio 1.7\n" + "8.            Ejercicio 1.8\n" + "9.            Ejercicio 1.9\n" +
 "10.          Ejercicio 1.10\n" + "11.          Ejercicio 1.11\n" + "12.          Ejercicio 1.12\n" + "13.          Ejercicio 1.13\n" +
"14.          Ejercicio 1.14\n" + "\nEjercicios propuestos.\n" + "15.          Ejercicio 1.1\n" + "16.          Ejercicio 1.2\n" +
"17.          Ejercicio 1.3\n" + "\n\n" + "18.    Para Salir de la aplicación"));
        switch (elecion){
//ejercicio 1.1
            case 1:
                JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.1");
                JOptionPane.showMessageDialog(null, "Descripción: Diseñar un programa que lo único que haga sea pedir un numero al usuario, leerlo del teclado y terminar su ejecución.");
                JOptionPane.showInputDialog("Escriba un numero cualquiera");
            break;
//ejercicio 1.2
            case 2:
                JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.2");
                JOptionPane.showMessageDialog(null, "Descripción: Modificar el ejercicio anterior para que pida el numero y lo muestre.");
                int nume1 = Integer.parseInt(JOptionPane.showInputDialog("Escriba un numero cualquiera"));
                JOptionPane.showMessageDialog(null, "El numero introducido es: " +nume1);
            break;
//ejercicio 1.3
            case 3:
                JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.3");
                JOptionPane.showMessageDialog(null, "Descripción: Pedir al usuario su edad y mostrar la que tendrá el próximo año.");
                int edad = Integer.parseInt(JOptionPane.showInputDialog("Tu edad?"));
                edad = edad + 1;
                JOptionPane.showMessageDialog(null, "Tendrás el año que viene: " +edad +"años");
            break;
//ejercicio 1.4
            case 4:
                JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.4");
                JOptionPane.showMessageDialog(null, "Descripción: escribir una aplicación que pida el año actual y el de nacimiento del usuario.\nDebe calcular la edad del usuario, suponiendo que en el año en curso el usuario ya ha cumplido años.");
                int fechanacimiento = Integer.parseInt(JOptionPane.showInputDialog("En qué año naciste?"));
                int fechaactual = Integer.parseInt(JOptionPane.showInputDialog("en qué año estamos?"));
                int edad2 = fechaactual - fechanacimiento;
                JOptionPane.showMessageDialog(null, "Tienes:  " +edad2 +"años");
            break;
//ejercicio 1.5
            case 5:
                JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.5");
                JOptionPane.showMessageDialog(null, "Descripción: Necesitamos una aplicación que calcule la media aritmética de dos notas enteras.\nHay que tener en cuenta que la media puede contener decimales.");
                String nota1 = JOptionPane.showInputDialog("Primera nota");
                String nota2 = JOptionPane.showInputDialog("Segunda nota");
                double nota1b = Double.parseDouble (nota1);
                double nota2b = Double.parseDouble (nota2);
                double media =(nota1b + nota2b) / 2;
                JOptionPane.showMessageDialog(null, "Tienes: " +media);
            break;
//ejercicio 1.6
            case 6:
                JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.6");
                JOptionPane.showMessageDialog(null, "Descripción: modificar el ejercicio anterior para que calcule la media de tres notas enteras.");
                String nota3 = JOptionPane.showInputDialog("Primera nota");
                String nota4 = JOptionPane.showInputDialog("Segunda nota");
                String nota5 = JOptionPane.showInputDialog("Tercera nota");
                double nota3b = Double.parseDouble (nota3);
                double nota4b = Double.parseDouble (nota4);
                double nota5b = Double.parseDouble (nota5);
                double media2 = (nota3b + nota4b + nota5b) / 3;
                JOptionPane.showMessageDialog(null, "Tienes: " +media2);
            break;
//ejercicio 1.7
            case 7:
                JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.7");
                JOptionPane.showMessageDialog(null, "Descripción: Seria interesante disponer de un programa que pida como entrada un numero decimal y lo muestre redondeando al entero mas proximo.");
                String decimal = JOptionPane.showInputDialog("Escriba un numero decimal");
                double decimaloperation = Double.parseDouble(decimal);
                int entero = (int)(decimaloperation + 0.5);
                JOptionPane.showMessageDialog(null, "El numero entero próximo es: " + entero);
            break;
//ejercicio 1.8
            case 8:
                JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.8");
                JOptionPane.showMessageDialog(null, "Descripción: Un vendedor necesita gestionar los beneficios anuales que obtienen de la venta de manzanas.\nPor este motivo, nos ha pedido que diseñemos una aplicación que solicite el precio de venta por kilo,\nasi como las ventas en kilos de cada trimestre.\nLa aplicación mostrara el importe total.");
                String precio = JOptionPane.showInputDialog("Precio por kilo");
                double preciokilo = Double.parseDouble(precio);
                String kilos1 = JOptionPane.showInputDialog("Kilos del primer trimestre");
                String kilos2 = JOptionPane.showInputDialog("Kilos del segundo trimestre");
                String kilos3 = JOptionPane.showInputDialog("Kilos del tercer trimestre");
                String kilos4 = JOptionPane.showInputDialog("Kilos del cuarto trimestre");
                double kilos1b = Double.parseDouble (kilos1);
                double kilos2b = Double.parseDouble (kilos2);
                double kilos3b = Double.parseDouble (kilos3);
                double kilos4b = Double.parseDouble (kilos4);
                double totalanual = (kilos1b + kilos2b + kilos3b + kilos4b)* preciokilo ;
                JOptionPane.showMessageDialog(null, "las ganancias han sido: " +totalanual);
            break;
//ejercicio 1.9
            case 9:
                JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.9");
                JOptionPane.showMessageDialog(null, "Descripción: Un economista nos encarga un programa para realizar cálculos con el IVA.\nLa aplicación debe solicitar la base imponible y el IVA a aplicar.\nDebemos mostrar en pantalla el importe correspondiente al IVA y el total.");
                String baseimponible = JOptionPane.showInputDialog("Base imponible");
                double baseimponibleb = Double.parseDouble(baseimponible);
                String iva = JOptionPane.showInputDialog("IVA aplicable");
                double ivab = Double.parseDouble(iva);
                double importeiva = (baseimponibleb * ivab) / 100;
                double importetotal = importeiva + baseimponibleb;
                JOptionPane.showMessageDialog(null, "Base: " +baseimponibleb+ "\nIVA aplicado: " +ivab+ "\n\nimporté IVA: " +importeiva+ "\nTOTAL: "+importetotal);
            break;
//ejercicio 1.10
            case 10:
                JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.10");
                JOptionPane.showMessageDialog(null, "Descripción: Escribe un programa que tome como entrada un numero entero y nos indique que cantidad hay que sumarle para que el resultado sea múltiplo de 7.");
                final int MULTIPLO = 7;
                int n= Integer.parseInt(JOptionPane.showInputDialog("Introduce un numero"));
                int modulo = n %MULTIPLO;
                JOptionPane.showMessageDialog(null, "A: " + n + " hay que sumarle " + (MULTIPLO - modulo) %MULTIPLO + " para que sea múltiplo de " + MULTIPLO);
            break;
//ejercicio 1.11
            case 11:
                JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.11");
                JOptionPane.showMessageDialog(null, "Descripción: modificar el ejercicio anterior para que, indicando dos números n y m, nos diga qué cantidad hay que sumarle a n para que sea múltiplo de m");
                final int MULTIPLO2 = Integer.parseInt(JOptionPane.showInputDialog("Introduce un numero que será el múltiplo"));
                int n2= Integer.parseInt(JOptionPane.showInputDialog("Introduce un numero"));
                int modulo2 = n2 %MULTIPLO2;
                JOptionPane.showMessageDialog(null, "A: " + n2 + " hay que sumarle " + (MULTIPLO2 - modulo2) %MULTIPLO2 + " para que sea múltiplo de " + MULTIPLO2);
            break;
//ejercicio 1.12
            case 12:
                JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.12");
                JOptionPane.showMessageDialog(null, "Descripción: Diseñar una aplicación que calcule la longitud y el área de una circunferencia.\nPara ello, el usuario debe introducir el radio que puede contener decimales.");
                String medida = JOptionPane.showInputDialog("Introduce Unidad de medida: MM-CM-DM-M-HM-DAM-KM");
                String radio = JOptionPane.showInputDialog("Introduce el radio");
                double radiob = Double.parseDouble(radio);
                double longitud = 2 * Math.PI * radiob;
                double area = Math.PI * radiob * radiob;
                JOptionPane.showMessageDialog(null, "La longitud de la circunferencia es: " + longitud + "  " + medida + "\nEl área del circulo es: " + area + "  " + medida +"^2");
            break;
//ejercicio 1.13
            case 13:
                JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.13");
                JOptionPane.showMessageDialog(null, "Descripción: Crear un programa que, al pedir la base y la altura de un triangulo, muestre el área del mismo.");
                String medida2 = JOptionPane.showInputDialog("Introduce Unidad de medida: MM-CM-DM-M-HM-DAM-KM");
                String base = JOptionPane.showInputDialog("Introduce la base");
                double baseb = Double.parseDouble(base);
                String altura = JOptionPane.showInputDialog("Introduce el alto");
                double alturab = Double.parseDouble(altura);
                double area2 = baseb * alturab / 2;
                JOptionPane.showMessageDialog(null, "El área del triangulo es: " + area2 + "  " + medida2 +"^2");
            break;
//ejercicio 1.14
            case 14:
                JOptionPane.showMessageDialog(null, "ejercicio de concepto básicos 1.14");
                JOptionPane.showMessageDialog(null, "Descripción: Dado un polinomio de segundo grado\n\nCrear un programa que pida los coeficientes a, b y c, así como el valor de X, y calcule el valor correspondiente de y.");
                JOptionPane.showMessageDialog(null, "Formula: Y=ax^2+bx+c");
                String a = JOptionPane.showInputDialog("Introduce coeficiente a");
                double ab = Double.parseDouble(a);
                String b = JOptionPane.showInputDialog("Introduce coeficiente b");
                double bb = Double.parseDouble(b);
                String c = JOptionPane.showInputDialog("Introduce coeficiente c");
                double cb = Double.parseDouble(c);
                String x = JOptionPane.showInputDialog("y="+a+"x^2"+"+"+b+"x+"+c+"\n\nIntroduce valor de x");
                double xb = Double.parseDouble(x);
                double y=ab*xb*xb+bb*xb+cb ;
                JOptionPane.showMessageDialog(null, "para x=" + x + " resulta y=" + y + "\n\n" + y + "=" + a + x + "^2+" + b + x + "+" + c);
            break;
//ejercicio propuesto 1.1
            case 15:
                JOptionPane.showMessageDialog(null, "ejercicio propuestos 1.1");
                JOptionPane.showMessageDialog(null, "Descripción: Diseñar una aplicación que solicite al usuario que introduzca una cantidad medida en segundos.\nLa aplicación debe mostrar cuantas horas, minutos y segundos hay en el numero de segundos introducidos por el usuario.");
                int segundosintroducidos = Integer.parseInt(JOptionPane.showInputDialog("Introduce Segundos"));
                int horas = segundosintroducidos / 60 / 60 ;
                int minutos = segundosintroducidos / 60 - horas * 60 ;
                int segundos = segundosintroducidos - (minutos * 60 + horas * 60 * 60) ;
                JOptionPane.showMessageDialog(null, "El tiempo en segundos introducidos: " + segundosintroducidos +"\nNos dan que es: "+horas+":"+minutos+":"+segundos);
            break;
//ejercicio propuesto 1.2
            case 16:
                JOptionPane.showMessageDialog(null, "ejercicio propuestos 1.2");
                JOptionPane.showMessageDialog(null, "Descripción: Solicitar al usuario tres distancias:\n- La primera, medida en milímetros.\n- La segunda, medida en centímetros.\n- La última, medida en metros.\n\n Diseñar un programa que muestre la suma de las tres longitudes introducidas. Medida en centímetros.");
                String milimetro = JOptionPane.showInputDialog("Medida en milímetros");
                double mm = Double.parseDouble(milimetro);
                String centimetro = JOptionPane.showInputDialog("Medida en centímetros");
                double cm = Double.parseDouble(centimetro);
                String metro = JOptionPane.showInputDialog("Medida en metros");
                double m = Double.parseDouble(metro);
                double medida1b = mm / 10 ;
                double medida2b = cm ;
                double medida3b = m * 100 ;
                double total = medida1b + medida2b + medida3b ;
                JOptionPane.showMessageDialog(null, "El total de la suma son: " + total + " CM");
            break;
//ejercicio propuesto 1.3
            case 17:
                JOptionPane.showMessageDialog(null, "ejercicio propuestos 1.3");
                JOptionPane.showMessageDialog(null, "Descripción: \nUn biólogo está realizando un estudio de distintas especies de invertebrados y necesita \nuna aplicación que le ayude a contabilizar el numero de patas que tienen en total todos \nlos animales capturados durante una jornada de trabajo. Para ello, nos ha solicitado \nque escribamos una aplicación a la que hay que proporcionar:\n \n- El numero de hormigas capturadas de 6 patas. \n- El número de arañas capturadas de 8 patas. \n- El numero de cochinillas capturadas de 14 patas.\n \nLa aplicación debe mostrar el número total de patas que poseen todos los animales.");
                int hormigas = Integer.parseInt(JOptionPane.showInputDialog("Cuantas hormigas?"));
                int arañas = Integer.parseInt(JOptionPane.showInputDialog("Cuantas arañas?"));
                int cochinillas = Integer.parseInt(JOptionPane.showInputDialog("Cuantas cochinillas"));
                int patashormigas = 6 * hormigas ;
                int patasarañas = 8 * arañas ;
                int patascochinillas = 14 * cochinillas ;
                int totalpatas = patashormigas + patasarañas + patascochinillas ;
                JOptionPane.showMessageDialog(null, "Resumen del dia: \n"+"Hormigas capturadas: "+hormigas+"\n"+"Arañas capturadas: "+arañas+"\n"+"Cochinillas capturadas: "+cochinillas+"\n\n"+"Patas de hormigas: "+patashormigas+"\n"+"Patas de arañas: "+patasarañas+"\n"+"Patas de cochinillas: "+patascochinillas+"\n\n"+"Total de patas: "+totalpatas+"\n");
            break;
        }}while (elecion != 18);}}

Ahora la explicación y complexión del código.

Citar
JOptionPane.showMessageDialog(null, "Texto que se muestra en mensaje");
JOptionPane.showMessageDialog – esta setencia dice a la computadora que abra un panel con la información que hay entre los () al poner null, "Texto que se muestra en mensaje" provocamos que el null el mensaje salga en el centro de la pantalla.
Si ponemos unas coordenadas X, Y aparecerá en la posición que deseemos. Por ejemplo en la posición 200, 300 esto hará que salga con una separación del lateral izquierdo de 300 Pixeles y que baje unos 200.
El texto que aparece entre las “ ” será el mensaje que aparecerá en ese panel. Si ponemos un + esto permite encadenar diferentes frases que están entre “ ” o unir variables a un testo. Al escribir dentro de los “ ” una \n esto provoca un salto de línea. Y las variables simplemente se escriben el nombre de esa variable y se mostrara.

Ejemplo:
Citar
JOptionPane.showMessageDialog(null, "Resumen del dia: n"+"Hormigas capturadas: "+hormigas+"n"+"Arañas capturadas: "+arañas+"n"+"Cochinillas capturadas: "+cochinillas+"nn"+"Patas de hormigas: "+patashormigas+"n"+"Patas de arañas: "+patasarañas+"n"+"Patas de cochinillas: "+patascochinillas+"nn"+"Total de patas: "+totalpatas+"n");

El mensaje que muestra es:


Citar
JOptionPane.showInputDialog("Cuantas hormigas?")
Este es parecido al anterior pero con la diferencia que este tiene un campo en el que te permite escribir. Bien para meter valores o algún texto.
Normalmente se escribe después de poner la variable que va a recoger esa información que se va a introducir seguida de un =.
Cuando uno quiere introducir una serie de valores o texto necesita declarar una variable. Para ello hay que elegirla bien. No se debe coger una que tenga mucha capacidad si el número por ejemplo es corto, ya que aria que consumiera mucha memoria RAM del ordenador innecesariamente.
Os pongo un cuadro que pone los valores de los diferentes tipos de variables que se pueden asignar.



El comando JOptionPane.showInputDialog trabaja con el rango String.
Porque que si se quiere guardar en otro rango de variable, a de usarse sentencias que adaptan la información introducida.  
Ejemplo:
Citar
int hormigas = Integer.parseInt(JOptionPane.showInputDialog("Cuantas hormigas?"));
La variable hormigas es de rango int. Números enteros de 32 bit.
Por lo que se usa la sentencia Integer.parseInt que adapta los datos de rango String a int.

Si fuera de rango doublé seria la tencencia Double.parseDouble este permite introducir decimales.
veamos un ejemplo:
Citar
String centimetro = JOptionPane.showInputDialog("Medida en centímetros");                
double cm = Double.parseDouble(centimetro);

Los tres más usados son String, int y double.

Una cosa muy importante para pode usar las sentencias:
JOptionPane.showInputDialog
JOptionPane.showMessageDialog

Es el poner al principio la sentencia de llamada de la librería swing.
Citar
import javax.swing.*;

Esta es la que contiene toda la programación hecha de los paneles que salen al escribir las sentencias anteriores.
Lo bueno de usar el NetBeans IDE 8.0 es que el principio del proyecto te lo escribe el:
Citar
public class nombre del proyecto {    public static void main(String[] args) {
Os pondré varios cuadros con las operaciones que se pueden hacer con las variables.






Todas estas sentencias las explicare en el próximo tema.

Citar
do {            switch (x){            case 1:            break;}}while (x != 18);

[/spoiler]
7  Programación / Java / Re: [PREGUNTA] Hay algun tutorial de Java facil y bueno???? en: 8 Junio 2014, 01:07 am
buenas, una manera de aprender es ver videos en los que te ponene ejemplos, o en este foro encontraras de todo.
yo en taringa he echo un post en el que estoy haciendo un curso y pronto lo pasare a este foro.
te dejo el enlace si quieres, y cuando empieze el curso aqui te mando un privado

http://www.taringa.net/posts/apuntes-y-monografias/17855690/Programacion-de-Java---Conceptos-basicos---Cap-1.html

como dije aqui dejo el curso que estoy haciendo en este foro, el codigo se ve mejor aqui que en taringa se estropeo.

http://foro.elhacker.net/java/aprende_a_programar_con_java-t416196.0.html
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines