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 - miguialberto

Pages: [1] 2 3 4
1
Gracias por la info, llevo tiempo buscando herramientas de este tipo, aunque hay dos cosas que no terminan de convencerme:
  • Se ve todo como muy "old fashion". Parecen botones del XP...
  • El programa es clavado a "Creately", otra herramienta web de generacion de diagramas, entre ellos interfaces web, y que ofrece mas tipos de componentes y que funciona realmente bien

Por lo demas, promete!

2
Java JSE / Re: Ayuda Cambio de Color de un JTextField.
« on: Julio 01, 2011, 02:48:31 pm »
Hola de nuevo,

el problema que tienes es algo tipico, es decir, tienes un objeto que por una misteriosa razon que tu no controlas, algunos de sus atributos se estan modificando. Puedes seguir probando a cambiar de sitio el L&F a ver si hay suerte y consigues que no se cambie el color, o puedes ntentar descubrir quien te lo cambia y cuando lo hace, para poder controlarlo.

En el segundo caso, lo que hay que hacer es extender la clase en cuestion que esta siendo modificada, sobreescribir la funcion que es llamada de manera misteriosa y ponerte algun tipo de marca para poder saber quien la llama, bien con un breakpoint mientras debugueas o bien con un mensaje en pantalla.

He escrito un pequeño ejemplo en el que creo un JDialog con un JTextField y dos botones. El JTextField lo he extendido y he creado una clase que se llama MyTextField. Esta clase simplemente sobreescribe la funcion setBackground() y saca por pantalla el color que se le esta seleccionando. De esta manera podemos saber cuando se le seleccion un color de background.

El codigo es este:

Code: [Select]
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.UIManager;

public class BackgroundTest extends JDialog {

private JTextField text;
private JButton setLAdnFButton;
private JButton setTextBackgroundButton;
private Color textBackground = Color.BLUE;

public BackgroundTest() {
init();
pack();
}

private void init() {

text = new MyTextField();
setLAdnFButton = new JButton(new AbstractAction("L&F") {

@Override
public void actionPerformed(ActionEvent e) {
setLookAndFeel();
}
});

setTextBackgroundButton = new JButton(new AbstractAction("Background") {

@Override
public void actionPerformed(ActionEvent e) {
setTextBackground();
}
});

JPanel buttonsPanel = new JPanel();
buttonsPanel.setLayout(new BoxLayout(buttonsPanel, BoxLayout.X_AXIS));

buttonsPanel.add(setLAdnFButton);
buttonsPanel.add(setTextBackgroundButton);

getContentPane().add(text, BorderLayout.CENTER);
getContentPane().add(buttonsPanel, BorderLayout.SOUTH);
}

private void setTextBackground() {
text.setBackground(textBackground);
}

private void setLookAndFeel() {
try {
UIManager.setLookAndFeel(UIManager
.getCrossPlatformLookAndFeelClassName());
} catch (Exception e) {
JOptionPane.showMessageDialog(this, "Error settinf L&F");
}
}

public static void main(String[] args) {
BackgroundTest bt = new BackgroundTest();
bt.setVisible(true);
}

private class MyTextField extends JTextField {

@Override
public void setBackground(Color bg) {
System.err.println(">> Cambio de Background color!\nAhora["
+ getBackground() + "] - Despues[" + bg + "]");
super.setBackground(bg);
}
}
}

Yo lo he probado y lo cierto es que el fondo del background del JTextField (bueno, de MyTextField) no cambia a pesar de cambiar el L&F. En tu caso, puedes probar a insertar la clase MyTextField en tu codigo y saber mas sobre el asunto.

Espero te sirva de ayuda!

Ciao!

3
Java JSE / Re: Ayuda Cambio de Color de un JTextField.
« on: Junio 30, 2011, 03:09:22 pm »
Hola,

que yo sepa, la funcion setBackground() es la que hace falta para cambiar el color y deberia de funcionar. Lo unico que se me ocurre es que en algun momento vuelvas a cambiar el color del background, igual al hacer un repaint o algo parecido. Si dejas un poco mas de codigo quizas se pueda ver lo que sucede...

4
Java JSE / Re: Ayuda con JTable...
« on: Junio 29, 2011, 03:28:17 pm »
Hola Jack,

segun he leido en tu post, tu problema se basa en que quieres crear una tabla de forma dinamica, es decir , que no sabes a priori cuantas columnas tienes.

He hecho un pequeño programa en Java que puedes ejecutar y que muestra un JDialog con una tabla y dos botones. Un boton añade una columna y el otro boton la borra siempre y cuando quede al menos una columna.

Te dejo aqui el codigo y espero te sirva de ayuda!

Code: [Select]
package main;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class TableTestDialog extends JDialog {

private static final long serialVersionUID = 1L;
private DefaultTableModel model;
private JTable table;
private JButton addButton;
private JButton removeButton;

public TableTestDialog(){

init();
pack();
}

private void init(){

model = new DefaultTableModel(3, 3);
table = new JTable(model);
JPanel buttonsPanel = new JPanel();
buttonsPanel.setLayout(new BoxLayout(buttonsPanel, BoxLayout.X_AXIS));

addButton = new JButton(new AbstractAction("Add Column") {

private static final long serialVersionUID = 1L;

@Override
public void actionPerformed(ActionEvent e) {
addColumn();
}
});

removeButton = new JButton(new AbstractAction("Remove Column") {

private static final long serialVersionUID = 1L;

@Override
public void actionPerformed(ActionEvent e) {
removeColumn();
}
});

buttonsPanel.add(addButton);
buttonsPanel.add(removeButton);

getContentPane().add(table, BorderLayout.CENTER);
getContentPane().add(buttonsPanel, BorderLayout.SOUTH);
}

private void addColumn(){
model.addColumn("New");
}

private void removeColumn(){
if(model.getColumnCount()>1){
model.setColumnCount(model.getColumnCount()-1);
}
}

public static void main(String[] args){
TableTestDialog d = new TableTestDialog();
d.setVisible(true);
}
}


Ciao

5
¿Un cafecito? / Sugerencia: JAva Tips
« on: Junio 22, 2011, 03:07:31 pm »
Hola,

hace unos 3 años que empece a frecuentar este foro asiduamente para dudas sobre java (cuando empece a trabajar) y sin duda me salvo la papeleta mas de una vez. Por suerte, a dia de hoy, ya no me hace falta tan a menudo y puedo arreglarmelas solo. Sin embargo, cada vez que me encuentro con algo interesante, lo copio y lo guardo. Son cosas sencillas, pequeños tips que estoy seguro que a mas de uno le vendrian bien, mas que nada porque yo los hubiera agradecido. Siempre he pensado que algun dia me podria montar un blog o algo asi para ir posteandolos, pero tambien he pensado que este seria un buen lugar para hacerlo. Asi pues mi sugerencia es abrir una seccion donde se puedan postear pequeños (o no tan pequeños) trucos/tecnicas/tips sobre java y que todos podamos disfrutarlos. Quiza mas adelante se pueda añadir a la wiki o algo, por aquello de tenerlo ordenados.

No se si esto se escapa ya a la funcion de este foro, pero creo que lo podria enrriquecer.

Saludos!

6
Java JSE / Re: LOOK AND FEEL
« on: Diciembre 02, 2010, 02:13:19 pm »
Yo hace poco tuve que jugar tambien con el L&F. Al final me quede con esta libreria: https://substance.dev.java.net/. Tiene muchos temas y algunas mejoras, como la posibilidad de escalar por completo todos los componentes de una GUI con un spinner (mola! :-).

Ciao!

7
Java JSE / Re: Eliminar elemento de un arbol binario si alterar su preorden.
« on: Diciembre 01, 2010, 02:15:21 pm »
Hola,

corrigeme si me equivoco, pero "preorden" es un metodo para recorrer un arbol de forma recursiva (visitar raiz, visitar subarbol izqd, visitar subarbol drch).

De que modo afecta elminar un nodo en la manera en que lo visitas?

ciao

8
Java JSE / Re: Petición patrón de diseño
« on: Diciembre 01, 2010, 01:19:55 am »
Hola,

a pesar de que soy relativamente nuevo en el tema de patrones, creo que lo importante es darse cuenta que no todos los problemas tienen que resolverse con patrones aunque sea posible. De hecho, hay por internet un post llamado "Evil Design Patterns" en http://www.javaranch.com/patterns/ que hace referencia a este tema.

Por ejemplo, en tu caso, si vas hacer una aplicacion sencilla en la que tengas que visualizar unas simples consultas sql, implementar MVC se puede quedar grande, y la "infrastructura" que requiere el patron es mayor que las ventajas que ofrece. De todas formas, si te apetece implementarlo por aprender, te recomiendo este articulo http://www.oracle.com/technetwork/articles/javase/mvc-136693.html donde implementan una variacion de MVC muy interesante ya que esta basada en la api "reflection" de java.

Por otro lado, el patron DAO, a mi entender, es casi de uso obligado cuando se utilizan conexiones a BD o recursos externos. Yo lo utilizo sobre todo para poder testear con mocks. Sino me equivoco, chuidang tiene algun articulo sore mocks y testeo.

De todas formas, la mejor manera que encuentro para empezar a trabajar con patrones es leerse el libro que te he dicho antes.

Un saludo!

9
Java JSE / Re: Petición patrón de diseño
« on: Noviembre 30, 2010, 07:04:15 pm »
Hola,

MVC y DAO son patrones de diseño con fines diferentes. Si tu aplicacion es una GUI con una conexion a una BD puedes utilizar los dos patrones: el MVC para mostrar informacion y manipularla (aunque a lo mejor no te merece la pena) y DAO para acceder a los datos de la BD.

De todas formas te recomiendo el libro de patrones "Head First - Design Patterns". Esta muy bien y aclara los patrones de diseño mas comunes.

Ciao.

10
IDEs / Re: IDES para desarrollar en Java
« on: Octubre 03, 2010, 07:12:10 pm »
Hola,

la verdad es que el tema de las IDE`s es un poco como el de la Pepsi y la Coca-Cola, va por gustos. Si te sirve de algo, yo empece con NetBeans. Me gustaba mucho y sobre todo el editor de GUIs me parece genial. Sin embargo, mas tarde tuve que empezar a desarrollar con Maven, TestNG, etc. y me di cuenta que la mayoria de utilidades para desarrollo de Java tienen un plugin para Eclipse pero no para NetBeans, con lo que tuve que hacer practicamente una migracion forzada.

Asi que dependiendo de las necesidades que tengas, a lo mejor no tienes tanta opcion de escoger entre uno u otro, y si no tienes problema entre uno u otro, pues ya es una cuestion de gusto.

Ciao.

11
Java JSE / Re: JFileChooser para BD
« on: Mayo 20, 2010, 05:23:57 pm »
Gracias por la respuesta. Intentare jugar un poco JFileSystemView a ver que sale. Ya ire contando en este hilo si consigo algo!

Ciao.

12
Java JSE / JFileChooser para BD
« on: Mayo 20, 2010, 03:47:16 pm »
Hola!

Estoy trabajando en una aplicacion que necesita cargar y guardar ficheros. Esos ficheros pueden estar en el sistema de ficheros o en una base de datos. He tenido la idea de intentar juntar estas dos necesidades en un JFileChooser. Cuando el usuario quiera cargar/guardar un fichero, se abrira un nuevo JFileChooser con el sistema de ficheros. Sin embargo, quiero que haya tambien un boton para conectarse a una BD y se visualizen las tablas como directorios y que los ficheros sean las tuplas guardadas en una tabla. El nombre de los fichero debe de ser el valor de cierta columna. De manera teorica me parece muy bonito, pero lo cierto es que no se por donde meterle mano. Habia pensado en extender la clase File para mapearlo de alguna manera con una determinada tupla de la BD. Sin embargo, la clase File necesita un "path" de un fichero real, asi que no me sirve.

Alguien sabe como puedo "engañar" a un JFileChooser para decidir yo que fichero/directorios ver?

Gracias por adelantado!


13
Java JSE / Re: Exception vs Object
« on: Marzo 17, 2010, 10:10:27 pm »
Ya, tienes razon. Queria hacer un ejemplo donde se viera que puede haber diferentes respuesta de un metodo. Supongo que podria ser un ArrayList<Object> el parametro para que valiera de ejemplo.

14
Java JSE / Re: Exception vs Object
« on: Marzo 17, 2010, 09:00:19 pm »
Gracias por la respuesta!

Por "desgracia" es la respuesta que me temia  ;D Es decir, que no hay solucion buena y depende del caso. Me imagino que a veces no se puede saber a priori si una funcion va a dar una tasa de error alta o baja o si va a ser usada repetidas veces fuera de tu codigo, con lo que se complica el elegir una opcion u otra...

Me dejare llevar por la "intuicion" :-)

Ciao!

15
Java JSE / Exception vs Object
« on: Marzo 17, 2010, 05:21:58 pm »
Hola!

Tengo una pequeña duda acerca de como un objeto debe devolver cierta informacion. El escenario es el siguiente: tengo un objeto con una sola funcion:

Code: [Select]
public class Checkeador {

public void checkeaLista(ArrayList<Integer> intLista){

}
}

El metodo comprueba que todos los elementos de la lista son integer. Si todos son integer, todo va bien. Sin embargo, si algun elemento no es integer debe de informar acerca de la posicion del elemento que falla. Mi pregunta es: que debe devolver la funcion?

Estas son las posibilidades que se me ocurren:

  • Crear un excepcion para esta clase de manera que solo es lanzada cuando hay un "no integer". El mensaje de la exception informa acerca de que posicion es la fallida.
  • Crear un objeto "RespuestaCheckeo" con dos metodos: checkeoSatisfactorio() que nos indica si hubo un error o no y un getIndex() que nos devuelve el index fallido.
  • Devuelve un int. Si es -1 quiere decir que no hay error. Si es diferente de -1, nos devuleve el index fallido.

Asi que esta es mi duda, cual creeis que es mejor solucion?

Os comento mis opiniones:

  • Excepcion --> Es la que mas me gusta. Pienso que es elegante y solo hay que hacer un catch y tratar solo el caso de error. Si todo va bien tan solo se llama a la funcion y listo.
  • Objeto respueta --> Me parece la solucion mas "robusta". Sin embargo no me gusta que en caso de que no sea error, la funcion getIndex() no tiene sentido. Ademas, si este problema se repite mucho, acabamos teniendo muchas clases-respuesta.
  • Devolver int --> Me parece buena la solucion, pero poco "robusta"... aunque la mas agil.

Este es un ejemplo particular, pero esta pregunta es para todos los casos en que una funcion no devuelve nada cuando todo va bien pero debe de devolver valores cuando algo va mal.

Que os parece mejor?

Gracias!

Pages: [1] 2 3 4
ey