Mostrar Mensajes

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Swing

Pages: [1] 2
1
¿Un cafecito? / Re: Gracias
« on: Mayo 22, 2013, 12:14:09 pm »
Gracias!

Si, concuerdo con vos Garu y te felicito por tus logros!

Lo bueno esta en ir avanzando de a poco en este mundo tecnologico que nos rodea e ir descubriendo todo lo que nos ofrece, jeje.

Saludos.

2
¿Un cafecito? / Gracias
« on: Mayo 22, 2013, 10:29:56 am »
Hola Chuidiang!

Este mensaje no es para consultarte nada en especial como en otras ocasiones, sino mas bien para agradecerte mucho por la ayuda que me diste en este tiempo.

La verdad es que aprendi mucho de tu conocimiento y realmente me ayudaste a comprender mejor varias cosas que no tenia demasiado claras.

Lo cierto es que me encontraba terminando de realizar los ultimos ajustes del proyecto final de una materia para recibirme, y tenia muchas dudas.

Asi que gracias a ti logre juntar la fuerza necesaria para hacerle frente, y afortunadamente hace un rato rendi el examen bien y me recibi de ingeniero.

Saludos, y espero volver pronto por aqui, si no es para consultar algo, sera para tomarme un cafecito en esta seccion, jeje. Ahora, a disfrutar. :)

3
Java JSE / Re: Del Codigo al Diagrama de Clases
« on: Mayo 21, 2013, 09:10:11 pm »
De acuerdo. Gracias!

4
Java JSE / Re: Del Codigo al Diagrama de Clases
« on: Mayo 21, 2013, 08:35:51 pm »
Perfecto! Muchas gracias, recien lo corregi y le quite los getters y setters, dejando lo que realmente importa conocer, tienes razon.

Una consulta, necesito generar el JAR de mi proyecto en Java y se como hacerlo, pero el tema es que desde la aplicacion accedo a dos archivos XML donde persisto (leo y guardo) objetos; y no se como generarlo e indicarle que va a utilizar tales archivos. Es esto posible?

5
Java JSE / Re: Del Codigo al Diagrama de Clases
« on: Mayo 21, 2013, 09:59:01 am »
Al final voy a terminar agregando practicamente todo, para no dejar clases pequeñas en el diagrama y mostrar todo lo que tiene cada una.

6
Java JSE / Del Codigo al Diagrama de Clases
« on: Mayo 21, 2013, 05:22:32 am »
Hola. Estoy armando el Diagrama de Clases de mi sistema hecho en Java (la parte de la logica de negocios). Alli tengo clases como Alumno, Examinador, Examen, Tema, Pregunta.

Mi consulta es si es necesario agregar al diagrama los getters y setters de cada clase. Que hay del constructor? Y el metodo toString?

O solo conviene agregar las metodos particulares definidos en cada clase por mi?

No importa si alguna clase queda con la caja vacia? (Es decir, sin metodos, o sin atributos si es que los hereda de una clase padre)

Gracias!

7
Java JSE / Re: JScrollPane
« on: Mayo 20, 2013, 10:26:55 pm »
En la primera imagen use un BoxLayout con Y_AXIS.

Code: [Select]
JPanel panel = new JPanel();
panel.setBackground(Color.white);
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
panel.add(lblExaminador);
panel.add(lblAlumno);

Intente poniendo a todos el mismo tipo de Layout pero no pude, porque ademas alguno de los paneles necesita usar el GridLayout, por ejemplo.

Despues voy a probar a ver si sale.

8
Java JSE / JScrollPane
« on: Mayo 20, 2013, 02:38:09 pm »
Hola. Estoy intentando agregar un JScrollPane (barra de desplazamiento vertical) en una ventana, como se ve a continuacion:



En este caso me ha funcionado, dado que utilice un unico JPanel en la clase (rendir examen), y escribi lo siguiente:

Code: [Select]
JScrollPane desplazamiento = new JScrollPane(panel);
desplazamiento.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
add(desplazamiento);

Ahora tengo otra clase (corregir examen), donde tambien quiero agregar un JScrollPane, y la ventana se ve similar, asi:



El tema es que esta clase utiliza unos paneles con componentes definidos en otras clases, como ExamenPanel, y ExamenPanel usa ExamenConCorreccionPanel.

El codigo de la clase para corregir examen es el siguiente:

Code: [Select]
import interfaz.paneles.ExamenPanel;

public class GUICorregirExamen extends JFrame {

private static final long serialVersionUID = 1L;

private ExamenPanel examenPanel;

public GUICorregirExamen(Enunciado enunciado, final Examen examen) {

examenPanel = new ExamenPanel(enunciado, examen);

JButton btnCorregir = new JButton("Corregir");
btnCorregir.setAlignmentX(Component.CENTER_ALIGNMENT);

btnCorregir.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
for(Pregunta pregunta : examenPanel.getCorrecciones().keySet()) {
JRadioButton[] rbCorreccion = examenPanel.getCorrecciones().get(pregunta);
if(rbCorreccion[0].isSelected())
examen.agregarCorreccion(pregunta, true);
else if(rbCorreccion[1].isSelected())
examen.agregarCorreccion(pregunta, false);
else {
JOptionPane.showMessageDialog(null,
"Por favor, corrija todas las preguntas", "Error",
JOptionPane.WARNING_MESSAGE);
return;
}
}
examen.calificar();
examenPanel.setLabelCalificacionText("Calificacion: " + examen.getCalificacion());
Repositorio.getInstance().guardarEnunciados();
}
});

JButton btnSalir = new JButton("Salir");
btnSalir.setAlignmentX(Component.CENTER_ALIGNMENT);

btnSalir.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setVisible(false);
}
});

JPanel panel = new JPanel();
panel.setBackground(Color.white);
panel.setLayout(new FlowLayout());
panel.add(btnCorregir);
panel.add(btnSalir);

examenPanel.add(panel);

JScrollPane desplazamiento = new JScrollPane(examenPanel);
desplazamiento.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
add(desplazamiento);

}

public void run() {
setTitle("Corregir Examen");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setSize(700, 700);
setVisible(true);
setLocationRelativeTo(null);
}

}

Y me genera esta pantalla:



Como puedo hacer para que me mantenga la pantalla como en la imagen 2, sin moverme los componentes de lugar?

Desde ya, muchas gracias.

9
Java JSE / Re: Excepciones
« on: Mayo 19, 2013, 11:17:52 pm »
Buenisimo, muchas gracias por tu respuesta, me quedo mas claro. El unico tema es que si genero una nueva excepcion definida por mi, me marca en rojo todos los metodos de Repositorio que llaman a guardar en Persistor, y justo tengo unos cuantos en Repositorio y en algunas clases mas... Es por eso que el Eclipse me pide agregarle un bloque try-catch a cada metodo, o ponerle throws ExceptionAccesoArchivoTemas a cada metodo en particular. ¿Hay una forma general para decirle a todos esos metodos que pueden lanzar una excepcion de tipo ExceptionAccesoArchivoTemas, o tengo que marcarlos uno por uno?

10
Java JSE / Excepciones
« on: Mayo 19, 2013, 02:35:03 pm »
Hola Chuidiang. Te queria hacer una consulta sobre excepciones. Resulta que tengo las siguientes clases con los metodos que muestro a continuacion:

  • CargaDeDatos:

Code: [Select]
try {
Repositorio.getInstance().setTemas(temas);
} catch(NullPointerException e) {
System.out.println("No se pudo acceder al archivo de temas" + e);
}

try {
Repositorio.getInstance().setPreguntas(preguntas);
} catch(NullPointerException e) {
System.out.println("No se pudo acceder al archivo de preguntas" + e);
}

  • Repositorio:

Code: [Select]
/**
* Persiste todos los temas, actualizando tambien los que corresponda
*/
public void setTemas(List<Tema> temas) {
this.temas = temas;
this.persistorTemas.guardar(temas, path + "../Archivos/Temas.xml");
}

/**
* Persiste todos las preguntas, actualizando tambien las que corresponda
*/
public void setPreguntas(List<Pregunta> preguntas) {
this.preguntas = preguntas;
this.persistorPreguntas.guardar(preguntas, path + "../Archivos/Preguntas.xml");

}

  • Persistor:

Code: [Select]
public void guardar(T dato, String archivo) {

try {

FileOutputStream os = new FileOutputStream(archivo);
XMLEncoder encoder = new XMLEncoder(os);
encoder.writeObject(dato);
encoder.close();

} catch(FileNotFoundException e) {

System.out.println("No se encontro el archivo " + e);

}

}

El tema es el siguiente:

- La clase CargaDeDatos llama al metodo setTemas en la clase Repositorio.

- La clase Repositorio llama al metodo guardar en la clase Persistor.

Si el archivo de temas / preguntas no existe, el metodo guardar de la clase Persistor me muestra: "No se encontro el archivo" (FileNotFoundEx)

Despues regresa a la clase CargaDeDatos y me muestra: "No se pudo acceder al archivo de temas / preguntas" (NullPointerEx)

Mi idea es utilizar solamente un mensaje para los temas y solamente un mensaje para las preguntas, no dos para cada uno de ellos...

El asunto es que intente quitando el mensaje de la clase CargaDeDatos, quedandome asi:

Code: [Select]
Repositorio.getInstance().setTemas(temas);
Repositorio.getInstance().setPreguntas(preguntas);

El problema es que cuando el archivo de temas / preguntas no existe, me muestra:

Code: [Select]
No se encontro el archivo (FileNotFoundEx)
Exception in thread "main" java.lang.NullPointerException
at java.util.ArrayList.addAll(Unknown Source)
at persistencia.Repositorio.<init>(Repositorio.java:45)
at persistencia.Repositorio.getInstance(Repositorio.java:55)
at persistencia.CargaDeDatos.main(CargaDeDatos.java:115)

Es por eso que queria saber como podria hacer para que no me muestre toda esa pila del NullPointer, mostrando solamente un mensaje.

Desde ya, muchas gracias por tu tiempo. Saludos.

11
Java JSE / Re: Constructor GUI + Variables
« on: Mayo 19, 2013, 05:42:12 am »
Buenisimo, muchas gracias! Ahora me quedo mas claro. Saludos.

12
Java JSE / Constructor GUI + Variables
« on: Mayo 19, 2013, 02:53:44 am »
Hola Chuidiang. Te queria consultar que diferencia hay entre declarar las variables afuera o adentro del constructor, con respecto a la interfaz grafica.

Me refiero en terminos de eficiencia, es decir, asegurandome que los componentes seran creados cuando realmente se los necesite utilizar.

  • Variables afuera del constructor:

Code: [Select]
public class HMGUI extends JFrame {

private JLabel label = new JLabel("Hola Mundo");
private JButton btn = new JButton("Click");

public HMGUI() {

add(label);
add(btn);
}

public static void main(String[] args) {

Consola.run(new HMGUI(), 300, 300, "GUI");
}

}

  • Variables adentro del constructor:

Code: [Select]
public class HMGUI extends JFrame {

public HMGUI() {

private JLabel label = new JLabel("Hola Mundo");
private JButton btn = new JButton("Click");

add(label);
add(btn);
}

public static void main(String[] args) {

Consola.run(new HMGUI(), 300, 300, "GUI");
}

}

¿Es posible que la segunda opcion sea mas conveniente, o es similar?

Desde ya, muchas gracias.

13
Java JSE / Re: Modelo de 3 Capas
« on: Mayo 16, 2013, 01:33:08 am »
No hay problema. En principio, aca encontre algo, mas que nada generico, pero viene bien para tener una idea general. Saludos.

  • Capa de presentación: es la que ve el usuario (también se la denomina "capa de usuario"), presenta el sistema al usuario, le comunica la información y captura la información del usuario en un mínimo de proceso (realiza un filtrado previo para comprobar que no hay errores de formato). También es conocida como interfaz gráfica y debe tener la característica de ser "amigable" (entendible y fácil de usar) para el usuario. Esta capa se comunica únicamente con la capa de negocio.
  • Capa de negocio: es donde residen los programas que se ejecutan, se reciben las peticiones del usuario y se envían las respuestas tras el proceso. Se denomina capa de negocio (e incluso de lógica del negocio) porque es aquí donde se establecen todas las reglas que deben cumplirse. Esta capa se comunica con la capa de presentación, para recibir las solicitudes y presentar los resultados, y con la capa de datos, para solicitar al gestor de base de datos almacenar o recuperar datos de él. También se consideran aquí los programas de aplicación.
  • Capa de datos: es donde residen los datos y es la encargada de acceder a los mismos. Está formada por uno o más gestores de bases de datos que realizan todo el almacenamiento de datos, reciben solicitudes de almacenamiento o recuperación de información desde la capa de negocio.

14
Java JSE / Modelo de 3 Capas
« on: Mayo 16, 2013, 12:17:19 am »
Hola. Te queria preguntar si, por casualidad, tendrias algun link para enviarme con informacion sobre el modelo de 3 capas (gui, logica de negocio y persistencia)?

Me vendria bien para guiarme y chequear que cada parte del codigo este donde tenga que estar. Muchisimas gracias.

15
Java JSE / Re: Eleccion de Clases a partir de un Enunciado
« on: Mayo 15, 2013, 12:30:11 pm »
Buenisimo Chuidiang! Excelente respuesta, me dejas mucho mas tranquilo... :)

Tienes toda la razon, lo importante es que el codigo sea entendible por otras personas y haga lo que tenga que hacer, cumpliendo con el paradigma de objetos.

Pages: [1] 2
ey