Hola,
Aqui dejo un ejemplo de programa en el que se gestionan 3 cursos de Java.
package Ventanas;
import java.awt.BorderLayout;
import javax.swing.JFrame ;
public class JFramePrincipal extends JFrame
{
String titulo="";
public JFramePrincipal (String titulo)
{
super(titulo);
setLayout(new BorderLayout(0,0));
setLocation(350, 20);
setResizable(false);
setVisible(true);
setSize(770,700);
}
}
package Ventanas;
import javax.swing.*;
import java.awt.*;
public class PanelCentro extends JPanel
{
private JTextField temas[];
private String[] tituloTemas;
private int numeroDeTemas;
private int colorPanelCentral=0;
public PanelCentro (String[]tituloTemas,int numeroDeTemas,int colorPanelCentral){
super();
this.numeroDeTemas=numeroDeTemas;
this.tituloTemas=tituloTemas;
this.colorPanelCentral=colorPanelCentral;
centro(tituloTemas,numeroDeTemas,colorPanelCentral);
}
public void centro (String[]tituloTemas,int numeroDeTemas,int colorPanelCentral){
setLayout(new GridLayout(numeroDeTemas, 1));
setBorder(BorderFactory.createLineBorder(Color.black));
setBackground(Color.yellow);
temas = new JTextField[numeroDeTemas];
for (int i=0; i<numeroDeTemas; i++)
{ temas[i] = new JTextField(" "+tituloTemas[i]);
temas[i].setEditable(false);
if (colorPanelCentral==1){
temas[i].setBackground(Color.green);
temas[i].setBorder(BorderFactory.createLineBorder(Color.black));
temas[i].setFont(new Font("Arial", Font.BOLD, 15));}
if (colorPanelCentral==2){
temas[i].setBackground(Color.yellow);
temas[i].setBorder(BorderFactory.createLineBorder(Color.black));
temas[i].setFont(new Font("Arial", Font.BOLD, 25));}
if (colorPanelCentral==3){
temas[i].setBackground(Color.cyan);
temas[i].setBorder(BorderFactory.createLineBorder(Color.yellow));}
add(temas[i]);
}
}
}
package Ventanas;
import javax.swing.*;
import java.awt.*;
public class PanelOeste extends JPanel
{
public PanelOeste()
{
super();
}
}
package Ventanas;
import javax.swing.*;
import java.awt.*;
public class PanelSur extends JPanel
{
public PanelSur(int numeroBotones){
super();
setLayout(new GridLayout(1,numeroBotones));
setBorder(BorderFactory.createLineBorder(Color.black));
setBackground(Color.cyan);
}
}
import Ventanas.*;
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.*;
public class Portada extends JFramePrincipal implements ActionListener
{
private JButton[] botones;
private JButton botonSurSalir,botonSurEmpezar;
private String[] intro={"APRENDER A PROGRAMAR. Java desde cero",
"APRENDER A PROGRAMAR. Java nivel avanzado I ","JEDI.Curso de Java"};
private int numeroDeCurso=1;
public Portada ()
{ super("INDICE DE CURSOS");
PanelOeste ventanaOeste = new PanelOeste();
ventanaOeste.setLayout(new GridLayout(3,1));
ventanaOeste.setBorder(BorderFactory.createLineBorder(Color.black));
ventanaOeste.setBackground(Color.black);
botones = new JButton[8];
for (int i=1; i<=3; i++)
{ botones[i] = new JButton(""+(i));
ventanaOeste.add(botones[i]);
botones[i].addActionListener(this);
}
PanelCentro ventanaCentro = new PanelCentro(intro,3,2);
ventanaCentro.setBorder(BorderFactory.createLineBorder(Color.black));
ventanaCentro.setBackground(Color.yellow);
PanelSur ventanaSur = new PanelSur(1);
botonSurSalir =new JButton("Salir");
botonSurSalir.addActionListener(this);
ventanaSur.add(botonSurSalir);
add(ventanaCentro,BorderLayout.CENTER);
add(ventanaSur,BorderLayout.SOUTH);
add(ventanaOeste,BorderLayout.WEST);
}
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("Salir") ) {setVisible(false);}
for (int i=1;i<=3;i++){
if(e.getActionCommand().equals(""+i) ) {numeroDeCurso=i;
setVisible(false);new TemasCursos(numeroDeCurso); ;}
}
}
public static void main(String[] args) {
new Portada();}
}
public class TemasCursos
{
String [ ] temasCursoAvanzado = {
"PRINCIPALES CLASES DE UTILIDADES",
"GESTIÓN DE EXCEPCIONES",
"GESTIÓN DE LA ENTRADA/SALIDA EN JAVA",
"INTRODUCCIÓN A LAS INTERFACES GRÁFICAS: AWT Y SWING. GESTIÓN DE EVENTOS",
"INTRODUCCIÓN DESARROLLO DE SOFTWARE CON NETBEANS",
"DESARROLLO AVANZADO CON NETBEANS",
"GESTIÓN DE CONTROL DE VERSIONES",};
String[] temasJavaDesdeCero = {"1 a 25","26 a 51","51 a 75","76 a 85"};
String [ ] temasJedi = {" Introduccion"," Estructuras basicas de programacion",
" Programacion orientada a objetos"," Excepciones"," Programacion grafica.El entorno Swing",
" Eventos"," El paradigma modelo-vista-controlador"," Applets"," Entrada/Salida:Streams",
" Epigrafe"};
public TemasCursos(int numeroCurso)
{
if (numeroCurso==1){new IndiceCursos(temasJavaDesdeCero,4,1,"APRENDER JAVA DESDE CERO");}
if (numeroCurso==2){new IndiceCursos(temasCursoAvanzado,7,2,"APRENDER JAVA.CURSO AVANZADO");}
if (numeroCurso==3){new IndiceCursos(temasJedi,10,3,"JEDI.CURSO AVANZADO");}
}
}
import Ventanas.*;
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.*;
public class IndiceCursos extends JFramePrincipal implements ActionListener
{
private JButton[] botones;
private JButton botonSur;
private String[] tituloTemas={};
int numeroCurso;
String [ ] capitulos = { };
public IndiceCursos (String[] capitulos,int xBotones,int numeroCurso,String titulo)
{ super(titulo);
this.numeroCurso=numeroCurso;
this.capitulos=capitulos;
PanelOeste ventanaOeste = new PanelOeste();
ventanaOeste.setLayout(new GridLayout(xBotones,1));
ventanaOeste.setBorder(BorderFactory.createLineBorder(Color.black));
ventanaOeste.setBackground(Color.black);
botones = new JButton[xBotones+1];
for (int i=1; i<=xBotones; i++)
{ botones[i] = new JButton(""+(i));
ventanaOeste.add(botones[i]);
botones[i].addActionListener(this);
}
PanelCentro ventanaCentro = new PanelCentro(capitulos,xBotones,1);
PanelSur ventanaSur = new PanelSur(1);
botonSur =new JButton("Atras");
ventanaSur.add(botonSur);
botonSur.addActionListener(this);
add(ventanaOeste,BorderLayout.WEST);
add(ventanaCentro,BorderLayout.CENTER);
add(ventanaSur,BorderLayout.SOUTH);
}
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("Atras") ) {setVisible(false);new Portada();}
for (int i=1;i<=13;i++){int numerodeIndice=i;
if(e.getActionCommand().equals(""+i) ) {setVisible(false);new SubTemasCursos(numeroCurso,numerodeIndice);}
}
}
}
public class GestorTemasCursos
{
public GestorTemasCursos(int numeroCurso,int numeroIndice,String[] []temasDesdeCero,String[] []temasAvanzado,String[][] temasJedi)
{
int numeroBotones=0;
int y=0;
switch (numeroCurso){
case 1: {
switch (numeroIndice){
case 1: {numeroBotones=25;break;}
case 2: {numeroBotones=25;break;}
case 3: {numeroBotones=25;break;}
case 4: {numeroBotones=10;break;}
}
new GestorDeSubTemas(temasDesdeCero[numeroIndice-1],numeroBotones,numeroIndice-1,"APRENDER JAVA DESDE CERO",2);
break;}
case 2:{
switch (numeroIndice){
case 1: {numeroBotones=15;break;}
case 2: {numeroBotones=9;break;}
case 3: {numeroBotones=5;break;}
case 4: {numeroBotones=17;break;}
}
new GestorDeSubTemas(temasAvanzado[numeroIndice-1],numeroBotones,numeroIndice-1,"APRENDER JAVA.CURDO AVANZADO",1);
break; }
case 3: {
switch (numeroIndice){
case 1: {numeroBotones=4;break;}
case 2: {numeroBotones=13;break;}
case 3: {numeroBotones=4;break;}
case 4: {numeroBotones=3;break;}
case 5: {numeroBotones=3;break;}
case 6: {numeroBotones=3;break;}
case 7: {numeroBotones=2;break;}
case 8: {numeroBotones=8;break;}
case 9: {numeroBotones=9;break;}
case 10: {numeroBotones=4;break;}
}
new GestorDeSubTemas(temasJedi[numeroIndice-1],numeroBotones,numeroIndice-1,"JEDI.CURSO AVANZADO",3);
break;}
}
}
}
import Ventanas.*;
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.*;
import java.io.IOException;
public class GestorDeSubTemas extends JFramePrincipal implements ActionListener
{
private JButton botonSur;
private JButton[] botones;
private String[] tituloTemas={};
private int numeroBotones,carpetaTemas;
private int temario;
String ruta,titulo;
public GestorDeSubTemas (String [] tituloTemas,int numeroBotones,int carpetaTemas,String titulo,int temario)
{ super(titulo);
this.temario=temario;
this.tituloTemas=tituloTemas;
this.numeroBotones=numeroBotones;
this.carpetaTemas=carpetaTemas;
this.titulo=titulo;
PanelOeste ventanaOeste = new PanelOeste();
ventanaOeste.setLayout(new GridLayout(numeroBotones,1));
ventanaOeste.setBorder(BorderFactory.createLineBorder(Color.black));
ventanaOeste.setBackground(Color.yellow);
botones = new JButton[numeroBotones+1];
for (int i=1; i<=numeroBotones; i++)
{ botones[i] = new JButton(""+(i));
ventanaOeste.add(botones[i]);
botones[i].addActionListener(this);
}
PanelCentro ventanaCentro = new PanelCentro(tituloTemas,numeroBotones,3);
PanelSur ventanaSur = new PanelSur(1);
botonSur =new JButton("Atras");
ventanaSur.add(botonSur);
botonSur.addActionListener(this);
add(ventanaOeste,BorderLayout.WEST);
add(ventanaCentro,BorderLayout.CENTER);
add(ventanaSur,BorderLayout.SOUTH);
}
public void Archivo (String archivo){
try {
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + archivo);
} catch (IOException a) {
a.printStackTrace();
}
}
public void actionPerformed(ActionEvent e){
if (temario==1){ruta="AVANZADO/";}
if (temario==2){ruta="JAVADESDECERO/";}
if (temario==3){ruta="JEDI/";}
String[] tema={"TEMA1/","TEMA2/","TEMA3/","TEMA4/","TEMA5/","TEMA6/","TEMA7/","TEMA8/","TEMA9/","TEMA10/"};
String[] capitulo={"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"};
int i=0;
for (i=1; i<numeroBotones+1; i++){
if(e.getActionCommand().equals(""+i) ) {
Archivo("C:/Users/Pc/Desktop/JAVA/PROGRAMAS/APRENDER A PROGRAMAR II/"+ruta+tema[carpetaTemas]+capitulo[i-1]+".rtf");}
}
if(e.getActionCommand().equals("Atras") ) {setVisible(false);
if (titulo.equals("APRENDER JAVA DESDE CERO")){new TemasCursos(1);}
if (titulo.equals("APRENDER JAVA.CURDO AVANZADO")){new TemasCursos(2);}
if (titulo.equals("JEDI.CURSO AVANZADO")){new TemasCursos(3);}
}
}
}
public class SubTemasCursos
{ //pongo los titulos de los temas con numero por cuestion de espacio para publicarlo
String[] tema1 = {"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"};
String[] tema2 = {"1","2","3","4","5","6","7","8","9"};
String[] tema3 = {"1","2","3","4","5"};
String[] tema4 = {"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17"};
String[] temas1a25 = {"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[] temas26a50 = {"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[] temas51a75 = {"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[] temas76a85 = {"1","2","3","4","5","6","7","8","9","10"};
String [ ] introduccion = {"1","2","3","4"};
String [ ] estructurasBasicas = {"1","2","3","4","5","6","7","8","9","10","11","12","13"};
String [ ] progOrientada = {"1","2","3","4"};
String [ ] excepciones = {"1","2","3"};
String[] programacionGrafica={"1","2","3"};
String [ ] eventos = {"1","2","3"};
String [ ] paradigma ={"1","2"} ;
String [ ] applets={"1","2","3","4","5","6","7","8"} ;
String[]entradaSalida={"1","2","3","4","5","6","7","8","9"};
String[]epigrafe={"1","2","3","4"};
String[] []temasJedi={introduccion,estructurasBasicas,progOrientada,excepciones,programacionGrafica,eventos,paradigma,applets,entradaSalida,epigrafe};
String[] []temasDesdeCero={temas1a25,temas26a50,temas51a75,temas76a85};
String[] []temasAvanzado={tema1,tema2,tema3,tema4};
public SubTemasCursos(int numeroCurso,int numeroIndice)
{
new GestorTemasCursos(numeroCurso,numeroIndice,temasDesdeCero,temasAvanzado,temasJedi);
}
}