Java - Hola podrian ayudarme porfis

 
Vista:

Hola podrian ayudarme porfis

Publicado por felipe (25 intervenciones) el 18/04/2007 16:54:57
hola soy novato en el mundo java tengo un problemita en un proyecto que estoy desarrollando, resulta que necesito tabular los datos que tengo dentro de un TextArea este es mi código:

defino salida como string
String salida0 = "Codigo Producto\t\tReferencia\t\tDescripcion\n\n";

salida0 += objPro.strCodproducto + "\t\t\t" + objPro.strReferencia + "\t\t\t" + objPro.strDescripcion + "\t\t\t" + "\n";
txa1.setText( salida0 );
pues resulta que me tabula pero cuando en descripcion hay un string demaciado largo me pasa lo siguiente dentro del textArea:

cod pro descripcion referencia valor

1020 Splash 156498 25000
1050 Fraganciaxxx 156897 23000
1021 Riñonera 469871 23000

podria alguien ayudarme a solucionar este problemita, se los agradeceria mucho
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Hola podrian ayudarme porfis

Publicado por angel (537 intervenciones) el 18/04/2007 17:17:44
Antes de pintar tienes que saber cual es el maximo de caracters para cada columna...y una vez sepas eso,,,,rellenas de blancos el campo hasta completar el maximo.

Un codigo de ejmplo

class Persona
{
int edad ;
String ciudad;
String nombre;
}

public class Prueba{
public static void main(String args[])
{
String salida = "";
ArrayList r = new ArrayList();
Persona p = new Persona();
p.edad = 20;
p.ciudad = "Ciudad1";
p.nombre = "Pepe";
r.add(p);
p = new Persona();
p.edad = 50;
p.ciudad = "Ciudad nueva1";
p.nombre = "Jose antonio";
r.add(p);p = new Persona();
p.edad = 20;
p.ciudad = "Mini ciudadddddd";
p.nombre = "Ernesto";
r.add(p);
int[] contCol = new int[3];
for(int i=0;i<r.size();i++)
{
p = (Persona)r.get(i);
if(contCol[0]<String.valueOf(p.edad).length())
contCol[0]=String.valueOf(p.edad).length();
if(contCol[1]<p.ciudad.length())
contCol[1]=p.ciudad.length();
if(contCol[2]<p.nombre.length())
contCol[2]=p.nombre.length();
}

for(int i=0;i<r.size();i++)
{
p = (Persona)r.get(i);
salida += p.edad + blancos(String.valueOf(p.edad).length(),contCol[0])+
"\t" + p.ciudad + blancos(p.ciudad.length(),contCol[1]) +
"\t" + p.nombre + blancos(p.nombre.length(),contCol[2]) + "\n";
}

System.out.println(salida);
}

private static String blancos(int tam,int pos)
{
String blancos="";
for(int i=tam;i<pos;i++){blancos+=" ";}
return blancos;
}

}

Adaptalo a tus necesidades....saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 979
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:Hola podrian ayudarme porfis

Publicado por Yamil Bracho (2304 intervenciones) el 18/04/2007 18:56:33
El metodo blancos lo puedes optimizar un poco mas asi :

rivate static String blancos(int tam,int pos)
{
StringBuffer sb = new StringBuffer( );
for(int i=tam;i<pos;i++){sb.Append(" "); }
return sb.toString();
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Hola podrian ayudarme porfis

Publicado por govisagod512 (5 intervenciones) el 20/04/2007 21:28:45
http://www.javahispano.org/forums.thread.action?forum=1&thread=1337567613&id=1337567613

Puedes crear un WindowListener que lanzará el JDialog, para lo cual te será interesante la clase JOptionPane, por ejemplo así:

ventana.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
ventana.addWindowListener(new WindowAdapter(){
...public void windowClosing(WindowEvent e){
......int valor=JOptionPane.showConfirmDialog(ventana,"¿Realmente quiere cerrar la ventana?","Ventana confirmación",JOptionPane.YES_NO_OPTION);
...}
......if(valor==JOptionPane.YES_OPTION){
..........//Cerrar ventana o programa, lo que quieras hacer
......}
});

Espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar