Hola. Aquí dejo un programa realizado con los conocimientos adquiridos gracias al curso.
Me gustaria que alguien más avanzado que yo lo echara un vistazo a ver en qué lo puedo mejorar.
Los textos de los temas no los pongo porque ocuparia mucho espacio.
Graciaspublic class Inicio {
public static void main(String[] args) {
new TeoriaOEjercicios();}
}
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.*;
import java.awt.*;
/**
* Write a description of class prueba1 here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class TeoriaOEjercicios extends gg implements ActionListener{
private JTextField pO;
private JButton p1;
private JButton p2;
private JPanel pS,pC;
private JTextArea p3;
private String textoCentro=" \n Objetivos \n\n Java es uno de los lenguajes de programación más utilizados en el mundo,"+
"enmarcado en el grupo de lenguajes \n orientados a objetos. Este curso permite aprender los fundamentos de la programación Java"+
" y de la programación orientada\n a objetos."+"\n\n Destinatarios\n\n Cualquier persona con interés en aprender fundamentos de"+
" programación Java con vistas al desarrollo de aplicaciones.\n Es recomendable, aunque no imprescindible, que el alumno tenga conocimientos básicos de"+
" algoritmia y de algún otro \nlenguaje de programación.\n\n Contenidos\n\n INTRODUCCIÓN A JAVA. QUÉ ES JAVA. INSTALACIÓN Y PRIMEROS PASOS CON "+
"JAVA.\n OBJETOS, CLASES Y CONSTRUCTORES EN JAVA. INSTANCIAS. TIPOS DE DATOS.\n SINTAXIS BÁSICA Y CONDICIONALES EN JAVA. OPERADORES.\n EL API DE JAVA."+
"BIBLIOTECAS DE CLASES. ¿QUÉ ES Y PARA QUÉ SIRVE EL API DE JAVA?\n CREAR UN PROGRAMA CON JAVA. ABSTRACCIÓN. MODULARIZACIÓN. MÉTODOS. MAIN.\n ESTRUCTURAS DE"+
" REPETICIÓN O BUCLES, COLECCIONES DE OBJETOS Y RECORRIDOS.\n HERENCIA EN JAVA. ¿QUÉ ES LA HERENCIA EN PROGRAMACIÓN ORIENTADA A OBJETOS?\n PROGRESAR COMO"+
" PROGRAMADORES JAVA: SWING, GESTIÓN DE ERRORES Y OTROS\n\n Duración\n\n 150 horas de dedicación efectiva, incluyendo lecturas, estudio y ejercicios.\n"+
"\n\n Dirección, modalidades y certificados\n\n El curso está dirigido por Mario Rodríguez Rancel, Jefe de Proyectos de aprenderaprogramar.com."+
"Se oferta bajo las \nmodalidades web (gratuito), con tickets de soporte y tutorizado on-line (material + soporte). A los alumnos que"+" sigan \nel curso tutorizado"+
" on-line y cumplan el programa de trabajo se les expedirá certificado acreditativo de la realización del curso.";
/**
* Constructor for objects of class prueba1
*/
public TeoriaOEjercicios ()
{
super(" CURSO DE JAVA de APRENDER A PROGRAMAR");
sur();
centro();
oeste();
add(pS,BorderLayout.SOUTH);
add(pC,BorderLayout.CENTER);
add(pO,BorderLayout.WEST);
}
public void oeste(){
pO = new JTextField(" ");
pO.setBackground(Color.green);
pO.setBorder(BorderFactory.createLineBorder(Color.blue));
setVisible(true);
pO.setEditable(false);
}
public void centro(){
pC = new JPanel(null);
pC.setLayout(new FlowLayout());
p3 = new JTextArea(textoCentro,100,1);
pC.setBorder(BorderFactory.createLineBorder(Color.red));
p3.setEditable(false);
pC.add(p3);
}
public void sur(){
pS = new JPanel(null);
pS.setLayout(new GridLayout(1,2));
p1 = new JButton("Teoria ");
p1.addActionListener(this);
p2 = new JButton("Ejercicios ");
p2.addActionListener(this);
pS.setBorder(BorderFactory.createLineBorder(Color.green));
pS.add(p1);pS.add(p2);
}
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("Teoria ") ) {
new Teoria();}
if(e.getActionCommand().equals("Ejercicios ") ) {
new Ejercicios();}
}
}
import java.awt.*;
import javax.swing.*;
/**
* Write a description of class prueba1 here.
*
* @author (your name)
* @version (a version number or a date)
*/
abstract class gg extends JFrame
{
private JTextField pE;
String titulo="";
/**
* Constructor for objects of class prueba1
*/
public gg (String titulo)
{
super(titulo);
setLayout(new BorderLayout(0,0));
setLocation(350, 50);
setResizable(false);
setVisible(true);
setSize(770,650);
este();
add(pE,BorderLayout.EAST);
}
public void este(){
pE = new JTextField(" ");
pE.setBackground(Color.blue);
pE.setBorder(BorderFactory.createLineBorder(Color.red));
setVisible(true);
pE.setEditable(false);
}
}
public class Ejercicios
{
String[] temas1 = {"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17",
"18","19","20","21","22","23","24","25"};
String[] temas2 = {"26","27","28","29","30","31","32","33","34","35","36","37","38","39","40",
"41","42","43","44","45","46","47","48","49","50"};
String[] temas3 = {"51","52","53"};
String[] temas4 = {""};
String [ ] capitulos = {
" 1-25",
" 26-50",
" 51-53",
};
public Ejercicios()
{
new ii(temas1,temas2,temas3,temas4,capitulos,3,3);
}
}
import java.io.IOException;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.*;
import javax.swing.*;
/**
* Write a description of class prueba1 here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Temas extends gg implements ActionListener
{
JTextField jt[];
private JButton boton[];
private JPanel pC,pO,pN;
private int x,numeroDeTemas;
String[] temas ;
/**
* Constructor for objects of class prueba1
*/
public Temas(String[] temas,int numeroDeTemas,int x )
{
super(" CURSO DE JAVA de APRENDER A PROGRAMAR");
this.temas=temas;
this.x=x;
this.numeroDeTemas=numeroDeTemas;
centro();
oeste();
este();
norte();
add(pC,BorderLayout.CENTER);
add(pO,BorderLayout.WEST);
add(pN,BorderLayout.NORTH);
}
public void centro (){
pC = new JPanel(null);
pC.setLayout(new GridLayout(25, 1));
pC.setBorder(BorderFactory.createLineBorder(Color.red));
pC.setBackground(Color.red);
pC.setVisible(true);
pC.setSize(510, 680);
jt = new JTextField[25];
for (int i=0; i<numeroDeTemas; i++)
{ jt[i] = new JTextField(" "+temas[i]);
jt[i].setEditable(false);
jt[i].setBackground(Color.green);
pC.add(jt[i]);
}
}
public void oeste(){
pO = new JPanel(null);
pO.setLayout(new GridLayout(25,1));
pO.setBorder(BorderFactory.createLineBorder(Color.red));
pO.setBackground(Color.red);
boton = new JButton[numeroDeTemas+1];
for (int i=0; i<numeroDeTemas; i++)
{ boton[i] = new JButton(""+(i+x));
pO.add(boton[i]);
boton[i].addActionListener(this); }
}
public void norte(){
JTextField b;
pN = new JPanel(null);
b = new JTextField("TEMAS "+x+"-"+ (x+(numeroDeTemas-1)));
b.setVisible(true);
b.setEditable(false);
pN.add(b);
pN.setLayout(new FlowLayout(FlowLayout.LEFT));
pN.setVisible(true);
pN.setBorder(BorderFactory.createLineBorder(Color.red));
pN.setBackground(Color.red);
}
public void Archivo (String archivo){
try {
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + archivo);
} catch (IOException a) {
a.printStackTrace();
}
}
public void actionPerformed(ActionEvent e){
String ruta="C:/Users/Pc/Desktop/JAVA/PROGRAMAS/APRENDER A PROGRAMAR/TEXTOS/";
int i=0;
for (i=x; i<(x+25) ; i++){
if(e.getActionCommand().equals(""+i) ) {
Archivo(ruta+temas[i-x]+".rtf");}
if(e.getActionCommand().equals(""+i) ) {
Archivo(ruta+temas[i-x]+".txt");}
}
}
}
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.*;
import javax.swing.*;
/**
* Write a description of class prueba1 here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class ii extends gg implements ActionListener{
private JPanel pO,pC,pN;
private JTextArea p3,p4;
private JTextField jt[];
private JButton boton[];
String[] temas1={};String[] temas2={};String[] temas3={};String[] temas4={};
String[] capitulos;
int x=0;int y=0;
public ii(String[] temas1,String[] temas2,String[] temas3,String[] temas4,String[] capitulos,int x,int y)
{
super(" CURSO DE JAVA de APRENDER A PROGRAMAR");
this.temas1= temas1;
this.temas2= temas2;
this.temas3= temas3;
this.temas4= temas4;
this.capitulos=capitulos;
this.x=x;
this.y=y;
centro();
oeste();
norte();
add(pN,BorderLayout.NORTH);
add(pC,BorderLayout.CENTER);
add(pO,BorderLayout.WEST);
}
public void norte(){
JTextField b;
pN = new JPanel(null);
b = new JTextField(" TEMAS ");
b.setFont(new Font("Arial", Font.BOLD, 31));
pN.add(b);
pN.setLayout(new FlowLayout());
pN.setVisible(true);
pN.setBackground(Color.red);
b.setEditable(false);
}
public void oeste(){
pO = new JPanel(null);
pO.setLayout(new GridLayout(x,1));
pO.setBorder(BorderFactory.createLineBorder(Color.red));
pO.setBackground(Color.red);
boton = new JButton[x+1];
for (int i=1; i<=x; i++)
{ boton[i] = new JButton(""+i);
boton[i].setFont(new Font("Arial", Font.ITALIC, 31));
pO.add(boton[i]);
boton[i].addActionListener(this); }
}
public void centro (){
pC = new JPanel(null);
pC.setLayout(new GridLayout(x, 1));
pC.setBorder(BorderFactory.createLineBorder(Color.red));
pC.setBackground(Color.red);
pC.setVisible(true);
pC.setSize(510, 680);
jt = new JTextField[x+1];
for (int i=0; i<x; i++){
jt[i] = new JTextField(capitulos[i]);
jt[i].setEditable(false);
jt[i].setBackground(Color.green);
jt[i].setBorder(BorderFactory.createLineBorder(Color.black));
jt[i].setFont(new Font("Arial", Font.BOLD, 31));
pC.add(jt[i]);
}
}
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("1") ) {
new Temas(temas1,25,1);}
if(e.getActionCommand().equals("2") ) {
new Temas(temas2,25,26);}
if(e.getActionCommand().equals("3") ) {
new Temas(temas3,y,51);}
if(e.getActionCommand().equals("4") ) {
new Temas(temas4,10,76);}
}
}
/**
* Write a description of class kkk here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Teoria
{
String[] temas1 = {"COMENTARIOS JAVA. CONCEPTO DE BLOQUE DE CÓDIGO","CONCEPTO DE OBJETOS Y CLASES EN JAVA. DEFINICIÓN DE INSTANCIA",
"TIPOS DE DATOS (VARIABLES) EN JAVA","QUÉ ES UNA CLASE JAVA","MÉTODOS PROCEDIMIENTO (VOID) Y FUNCIÓN (RETURN)",
"MÉTODOS EN JAVA CON Y SIN PARÁMETROS","MÉTODOS CONSULTORES (GET) Y MODIFICADORES (SET)",
"ESTADO DE UN OBJETO","PARÁMETROS FORMALES Y PARÁMETROS ACTUALES","CONCEPTO Y FILOSOFÍA DE MÉTODOS Y CLASES EN JAVA",
"SIGNATURA DE UN MÉTODO. INTERFAZ O INTERFACE","IMPRIMIR POR CONSOLA EN JAVA (SYSTEM.OUT). CONCATENAR CADENAS",
"OPERADORES ARITMÉTICOS EN JAVA. EL OPERADOR % (MOD) O RESTO" ,"OPERADORES LÓGICOS PRINCIPALES EN JAVA",
"ASIGNACIÓN Y ASIGNACIÓN COMPUESTA EN JAVA","ESTRUCTURA O ESQUEMA DE DECISIÓN EN JAVA. IF ELSE , IF ELSE IF",
"CONDICIONAL DE SELECCIÓN SWITCH EN JAVA. EJEMPLO DE APLICACIÓN","VARIABLES LOCALES. SOBRECARGA DE NOMBRES",
"CÓMO CREAR CONSTRUCTORES EN JAVA. EJERCICIOS EJEMPLOS RESUELTOS", "SOBRECARGA DE CONSTRUCTORES O MÉTODOS",
"CLASES QUE UTILIZAN OBJETOS. RELACIÓN DE USO ENTRE CLASES. DIAGRAMAS DE CLASES",
"PASO DE OBJETOS COMO PARÁMETROS A UN MÉTODO O CONSTRUCTOR EN JAVA",
"LA SENTENCIA NEW COMO INVOCACIÓN DE UN CONSTRUCTOR EN JAVA",
"LA CLASE VISTA COMO PAQUETE DE CÓDIGO.OBJETOS DEL MUNDO REAL Y ABSTRACTOS",
"QUÉ ES Y PARA QUÉ SIRVE EL API DE JAVA",
};
String[] temas2 = {"ORGANIZACIÓN Y FORMA DE NOMBRAR LAS LIBRERÍAS DEL API DE JAVA",
"IMPORTAR Y USAR CLASES DEL API DE JAVA. EJEMPLO CON LA CLASE MATH",
"QUÉ ES UNA INTERFACE DE CLASE JAVA CONCEPTO",
"ESTUDIANDO EL CONCEPTO DE MÉTODO JAVA. EL MÉTODO SUBSTRING DE LA CLASE STRING",
"USAR MÉTODOS PARA EVITAR ERRORES. EJEMPLO", "ABSTRACCIÓN Y MODULARIZACIÓN EN JAVA",
"UN EJEMPLO DE CÓDIGO JAVA BÁSICO. CREAR CLASES CON CAMPOS, CONSTRUCTOR Y MÉTODOS",
"CONCEPTO O DEFINICIÓN DE MÉTODO INTERNO Y MÉTODO EXTERNO EN JAVA",
"PALABRA CLAVE THIS EN JAVA. CONTENIDO NULL POR DEFECTO DE UN OBJETO",
"CLASE CON EL MÉTODO MAIN: CLASE PRINCIPAL, INICIADORA O “PROGRAMA PRINCIPAL",
"SINTAXIS Y CÓDIGO EJEMPLO DE USO DEL MÉTODO MAIN","PEDIR DATOS POR CONSOLA (TECLADO) EN JAVA",
"CONCEPTO GENERAL DE BUCLE","BUCLE CON INSTRUCCIÓN WHILE EN JAVA. EJEMPLO USO DE BREAK",
"BUCLE CON INSTRUCCIÓN DO … WHILE. EJEMPLO DE USO","EL DEBUGGER DE BLUEJ. DETENER UN PROGRAMA EN EJECUCIÓN",
"PENSAR EN OBJETOS EN JAVA. UNA ENTRADA DE TECLADO COMO OBJETO",
"EL MÉTODO EQUALS EN JAVA. DIFERENCIA ENTRE IGUALDAD E IDENTIDAD DE OBJETOS",
"ASIGNACIÓN DE IGUALDAD CON TIPOS PRIMITIVOS Y OBJETOS",
"COLECCIONES DE OBJETOS DE TAMAÑO VARIABLE. CONTENEDORES",
"LA CLASE ARRAYLIST DEL API DE JAVA. LISTAS REDIMENSIONABLES",
"EL FOR EXTENDIDO O BUCLES FOR EACH EN JAVA","TIPO ITERATOR Y MÉTODO ITERATOR EN JAVA",
"TIPOS DE BUCLES O CICLOS EN JAVA (RESUMEN)","OBJETOS NULL Y JAVA.LANG.NULLPOINTEREXCEPTION",};
String[] temas3 = {"AUTOBOXING Y UNBOXING","OBJETOS ANÓNIMOS",
"ARRAYS, ARREGLOS O FORMACIONES EN JAVA",
"CONVERSIÓN DE TIPOS DE DATOS EN JAVA",
"GET Y REMOVE DE ARRAYLIST. EJEMPLO CONVERSIÓN DE TIPOS",
"GENERAR NÚMEROS ALEATORIOS EN JAVA",
"PALABRAS CLAVE STATIC Y FINAL. CONSTANTES EN JAVA",
"PROYECTOS JAVA EN PAQUETES (PACKAGES)",
"COPIAR ARRAYS Y COMPARAR ARRAYS. IDENTIDAD E IGUALDAD",
"LA CLASE ARRAYS DEL API DE JAVA. EQUALS, COPYOF, FILL",
"CONCEPTO DE INTERFAZ O INTERFACE JAVA. AMPLIACIÓN",
"CONCEPTO DE POLIMORFISMO EN JAVA. ¿QUÉ ES",
"TRANSFORMAR ARRAY EN UNA LISTA. MÉTODO ASLIST",
"DOCUMENTAR PROYECTOS JAVA CON JAVADOC",
"TIPOS ENUMERADOS (ENUM) EN JAVA",
"ENUMERADOS CLASES CON CAMPOS Y CONSTRUCTORES. MÉTODOS VALUES",
"MÉTODOS DE CLASE O STATIC FRENTE A MÉTODOS DE INSTANCIA",
"QUÉ ES LA HERENCIA EN PROGRAMACIÓN ORIENTADA A OBJETOS",
"JERARQUÍAS DE HERENCIA EN JAVA. SUPERCLASES Y SUBCLASES",
"EJEMPLO DE HERENCIA EN JAVA. EXTENDS Y SUPER",
"EJERCICIO RESUELTO DE HERENCIA SIMPLE EN JAVA",
"TIPOS Y SUBTIPOS. POLIMORFISMO Y VARIABLES POLIMÓRFICAS",
"CONVERSIÓN DE TIPOS. CASTING",
"SOBREESCRIBIR MÉTODOS EN JAVA. MÉTODOS POLIMÓRFICOS",
"EJERCICIO EJEMPLO RESUELTO CON HERENCIA"};
String[] temas4 = {
"USO DE SUPER PARA LLAMAR A MÉTODOS DE SUPERCLASE. EJEMPLO",
"MODIFICADORES DE ACCESO JAVA PUBLIC, PRIVATE, PROTECTED",
"SOBREESCRIBIR MÉTODOS TOSTRING Y EQUALS EN JAVA",
"CLASES Y MÉTODOS ABSTRACTOS EN JAVA",
"CLASES ABSTRACTAS EN EL API DE JAVA",
"CONCEPTO DE INTERFACE Y HERENCIA MÚLTIPLE EN JAVA. IMPLEMENTS",
"PARA QUÉ SIRVEN LAS INTERFACES EN JAVA",
"IMPLEMENTAR UNA INTERFACE DEL API JAVA. EJEMPLO",
"RESUMEN DE HERENCIA EN JAVA",
"PROGRESAR COMO PROGRAMADORES JAVA"};
String [ ] capitulos = {
" 1-25",
" 26-50",
" 51-75",
" 76-85",
};
public Teoria()
{
new ii(temas1,temas2,temas3,temas4,capitulos,4,25);
}
}