PREGUNTAS CONTESTADAS - Java

 Hay un total de 630 Preguntas.<<  >> 

    Pregunta:  61464 - COMO IMPRIMIR UN ARCHIVO TXT DESDE JAVA
Autor:  cesar bojorquez
he estado tratando de imprimir un arhivo desde java, pero no he podido. La funcion que uso envia la instruccion a la impresora y queda en cola pero no se imprime nada. Si alguien sabe por que o tiene un mejor codigo que el que yo tengo les agradeceria que lo compartieran.

Este es el codigo q estoy usando
public void printStuff() throws Exception {

//Printdata fr = new Printdata();
String filename = ("c://ficha.txt");//(path+nombre+".txt");
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
PrintService printService[] =
PrintServiceLookup.lookupPrintServices(flavor, pras);
PrintService defaultService =
PrintServiceLookup.lookupDefaultPrintService();
PrintService service = ServiceUI.printDialog(null, 200, 200,
printService, defaultService, flavor, pras);
if (service != null) {
DocPrintJob job = service.createPrintJob();
FileInputStream fis = new FileInputStream(filename);
DocAttributeSet das = new HashDocAttributeSet();
Doc doc = new SimpleDoc(fis, flavor, das);
job.print(doc, pras);
}
  Respuesta:  javier Lopez Vargas
Hola tal vez te pueda servir este codigo
*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package principal;

import java.awt.*;
import java.awt.print.*;
import java.util.StringTokenizer;

/**
*
* @author yo
*/
public class JFrameprincipal extends javax.swing.JFrame {

/**
* Creates new form JFrameprincipal
*/
public JFrameprincipal() {
initComponents();
this.setLocationRelativeTo(null);
}

/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {

jScrollPane1 = new javax.swing.JScrollPane();
jTAsalida = new javax.swing.JTextArea();
jPanel1 = new javax.swing.JPanel();
jPanel2 = new javax.swing.JPanel();
jBImprimir = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Imprimir el contenido de un JText Area");
setMinimumSize(new java.awt.Dimension(400, 400));

jTAsalida.setColumns(20);
jTAsalida.setRows(5);
jScrollPane1.setViewportView(jTAsalida);

getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);

jPanel2.setLayout(new java.awt.GridLayout(1, 2, 10, 0));

jBImprimir.setMnemonic('I');
jBImprimir.setText("Imprimir");
jBImprimir.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jBImprimirActionPerformed(evt);
}
});
jPanel2.add(jBImprimir);

jPanel1.add(jPanel2);

getContentPane().add(jPanel1, java.awt.BorderLayout.SOUTH);

pack();
}// </editor-fold>//GEN-END:initComponents

private void jBImprimirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBImprimirActionPerformed
PaginationExample pagination = new PaginationExample();
pagination.imprimirnomina();
}//GEN-LAST:event_jBImprimirActionPerformed

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/*
* Set the Nimbus look and feel
*/
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/*
* If Nimbus (introduced in Java SE 6) is not available, stay with the
* default look and feel. For details see
* http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(JFrameprincipal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(JFrameprincipal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(JFrameprincipal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(JFrameprincipal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>

/*
* Create and display the form
*/
java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {
new JFrameprincipal().setVisible(true);
}
});
}
public class PaginationExample implements Printable{
//Se obtienen las lineas de texto del JTextArea, la linea de texto finaliza cuando se encuentra el caracter de nueva linea \n
StringTokenizer lineasdetexto = new StringTokenizer(jTAsalida.getText(), "\n", true);
//Se obtiene el total de lineas de texto
int totallineas = lineasdetexto.countTokens();

int[] paginas; // Arreglo de número de paginas que se necesitaran para imprimir todo el texto

String[] textoLineas; //Lineas de texto que se imprimiran en cada hoja

//Metodo que se crea por default cuando una clase implementa a Printable
public int print(Graphics g, PageFormat pf, int pageIndex)
throws PrinterException {
//Se establece la fuente, el tipo, el tamaño, la metrica según la fuente asignada,
//obtiene la altura de cada linea de texto para que todas queden iguales
Font font = new Font("Serif", Font.PLAIN, 8);
FontMetrics metrics = g.getFontMetrics(font);
int altodelinea = metrics.getHeight();
//Calcula el número de lineas por pagina y el total de paginas
if (paginas == null) {
initTextoLineas();
//Calcula las lineas que le caben a cada página dividiendo la altura imprimible entre la altura de la linea de texto
int lineasPorPagina = (int)(pf.getImageableHeight()/altodelinea);
//Calcula el numero de páginas dividiendo el total de lineas entre el numero de lineas por página
int numeroPaginas = (textoLineas.length-1)/lineasPorPagina;
paginas = new int[numeroPaginas];
for (int b=0; b<numeroPaginas; b++) {
paginas[b] = (b+1)*lineasPorPagina;
}
}
//Si se recibe un indice de página mayor que el total de páginas calculadas entonces
//retorna NO_SUCH_PAGE para indicar que tal pagina no existe
if (pageIndex > paginas.length) {
return NO_SUCH_PAGE;
}
/*Por lo regular cuando dibujamos algun objeto lo coloca en la coordenada (0,0), esta coordenada
* se encuentra fuera del área imprimible, por tal motivo se debe trasladar la posicion de las lineas de texto
* según el área imprimible del eje X y el eje Y
*/

Graphics2D g2d = (Graphics2D)g;
g2d.translate(pf.getImageableX(), pf.getImageableY());
/*Dibujamos cada línea de texto en cada página,
* se aumenta a la posición 'y' la altura de la línea a cada línea de texto para evitar la saturación de texto
*/

int y = 0;
int start = (pageIndex == 0) ? 0 : paginas[pageIndex-1];
int end = (pageIndex == paginas.length) ? textoLineas.length : paginas[pageIndex];
for (int line=start; line<end; line++) {
y += altodelinea;
g.drawString(textoLineas[line], 0, y);
}
/* Retorna PAGE_EXISTS para indicar al invocador que esta página es parte del documento impreso
*/
return PAGE_EXISTS;
}

/* Agrega las lineas de texto al arreglo */
public void initTextoLineas() {
if (textoLineas == null) {
int numLineas=totallineas;
textoLineas = new String[numLineas];
//Se llena el arreglo que contiene todas las lineas de texto
while(lineasdetexto.hasMoreTokens()){
for (int i=0;i<numLineas;i++) {
textoLineas[i] = lineasdetexto.nextToken();
}
}
}
}

//Este metodo crea un objeto Printerjob el cual es inicializado y asociado con la impresora por default
public void imprimirnomina() {
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintable(this);
//Si el usuario presiona imprimir en el dialogo de impresión,
//entonces intenta imprimir todas las lineas de texto
boolean ok = job.printDialog();
if (ok) {
try {
job.print();
} catch (PrinterException ex) {
/* The job did not successfully complete */
}
}
}
}

// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jBImprimir;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea jTAsalida;
// End of variables declaration//GEN-END:variables
}

    Pregunta:  61473 - PROBLEMA CON ENVIAR DATOS POR EL PUERTO SERIAL
Autor:  Paulina Pozo
Hola, mi problema es el siguiente. Estoy tratando de comunicarme con un equipo por el puerto serial. Hice un programa en java bajo Mandriva para enviarle un comando que lo ponga a funcionar. El puerto serial se abre y mi programa le envia el comando que lo lee de un archivo, y si lo envia, pero el equipo no lo reconoce. Probé enviarlo desde un programa llamado minicom que es similar a hyperterminal usando como protocolo ASCII y si reconoce el comando y hace lo que debe hacer. Tengo entendido que mi código le envia al equipo información en forma de bytes. Quiero transformarlo a código ASCII para ver si me funciona. Mi código es el siguiente:

if (!entrada) {
try {
mensajeEnviar=envioArchivo(mensaje);// La variable mensajeEnviar es de tipo String
salida.write(mensajeEnviar.getBytes());// La variable salida es de tipo OutpuStream y envía bytes
cerrar();
} catch (IOException e) {
  Respuesta:  Alex .
Hola Paulina, sólo se un pokito de java, así que te cuento lo que se:

La clase String tiene un constructor al que le puedes indicar el tipo de código con el que quieres leer los bytes de entrada para guardarlo en el objeto String.

new String (byte[ ] bytes, String enc);

El array de bytes lo puedes obtener aplicando el método que usas, getBytes() (de la clase String) sobre un String, por ejemplo al de entrada de un readline() .... y "enc" es el nombre del codigo, ("ASCII", "UTF8", etc ..) .. y cuidado con el nombre del código, porque por ejemplo igual debes poner "UTF8" ó "UTF-8".

También puedes conocer el tipo de código que usa tu máquina por defecto, así:

System.out.println(System.getProperty("file.encoding"));

... y puedes cambiárselo:

System.setProperty("file.encoding", "ISO-8859-1");

En cuanto a lo de enviar diréctamente la información en forma de código ASCII a la máquina, pues no se si se puede hacer eso así, pues que yo sepa los códigos o codificaciones son tablas que asocian un número (expresado en decimal, hexadecimal o binario) a cada caracter, y que se hicieron para traducir el lenguaje de la máquina (bytes) al lenguaje humano (caracteres), y como tenemos múltiples idiomas por eso hay distintás tablas de cógigos, claro ... y por todo esto entiendo que la comunicación entre máquinas debe ser a nivel de bytes y no de caracteres diréctamente, y por eso cada máquina deberá tener su forma de traducir esos bytes a caracteres, tanto para enviar como para recibir la información y mostrarla en pantalla.

... espero haberte ayudado.

un saludo.

    Pregunta:  61759 - IDENTIFICAR EL TIPO DE INTERFACE
Autor:  alex
wenas, tengo windows xp y uso el programa Jbuilder v2.0, una versión algo ya pasada pero es a lo que estoy acostumbrado. Soy novato en la materia y mi pregunta es la siguiente:

Hace poco que he entendido la utilidad de los interfaces como una forma de acceder a las funciones o métodos de las clases que lo implementan. Me preguntaba si podría ahorrarme de alguna forma el tener que hacer una nueva clase desde la que acceder a todos los objetos que tienen un nuevo interface implementado. Me explico:

Por ejemplo, con el interface "Dibujable" hago que todos los objetos que lo implementan en su clase y tengan una función gráfica, sean dibujados en la clase MiCanvas a la que le paso el vector de objetos, y ahí les hago un simple casting (interface) dentro del bucle que recorre todo el vector de objetos.
ok, hasta aqui es fenomenal y esta misma dinámica la empleo para el teclado, el ratón y los hilos (threads).

Pero me preguntaba si cada vez que quiero añadir un nuevo tipo de comportamiento a los objetos, por ejemplo una acción (un thread), tengo que crear obligatoriamente un nueva case thread asociada al nuevo interface. Pues es que veo que la única diferencia entre los múltiples threads está en la mención al interface a la hora de hacer el casting. Y creo que sería mejor hacer un sólo thread más general que pueda identificar el tipo de interface.

gracias por la atención, un saludo.
  Respuesta:  alex
weno, pues al final me constesto yo mismo ... ^^¡

... en el caso de un hilo (un Thread), se puede crear éste en un método (una función) en la clase del mismo objeto; este método debe contener un objeto de la clase Runnable, que es un interface, o de otra clase interface que extienda de Runnable ... así:

void miMetodo(){

Runnable miRunable = new Runnable(){

public void run(){

try{
Thread.sleep(50);
}catch(Exception e){}

} //fin de run

}; //fin de Runnable

} //fin de miMetodo

Thread hilo = new Thread(miRunable);
hilo.start();

Y ya está, así se pueden hacer múltiples métodos con diferentes comportamientos de un mismo objeto sin tener que crear otra nueva clase (en este caso de los Threads). En el caso de otros comportamientos que no sean hilos, supongo que se puede proceder análogamente con los interfaces.

En el ejemplo anterior, suele ser necesario poder detener el hilo añadiendo un método llamado algo así como "setTerminar(boolean terminar){}" al que se le pasa true o false para acabar. Pero como el interface Runnable sólo declara el método run() no se puede utilizar el otro método para acabar, entonces es mejor crear otro interface que extienda de Runnable y declare el método "setTerminar()" ...

... de esa forma el ejemplo anterior queda así:

supongamos que hemos creado la clase interface "intf_Runnable" que extiende de Runnable y declara el método "setTerminar":

void miMetodo(){

intf_Runnable miRunable = new intf_Runnable(){

private boolean terminar=false;
public void setTerminar(boolean terminar){
terminar = terminar;
}

public void run(){

while(!terminar){
try{
Thread.sleep(50);
}catch(Exception e){}
}

} //fin de run

}; //fin de Runnable

} //fin de miMetodo

Ahora ya se puede detener el hilo con el mismo boton por ejemplo:

int n;
if(button.getLabel().equals("Arrancar")) n=1;
if(button.getLabel().equals("Detener")) n=2;

switch(n){
case 1:
hilo= new Thread (miRunnable);
hilo.start();
button.setLabel("Detener");
break;

case 2:
miRunnable.setTerminar(true);
hilo.stop();
hilo= null;
button.setLabel("Arrancar");
break;
default:
}

Nota: el objeto hilo hay que declararlo fuera del método, en los atributos de la clase. Después ya se define dentro de case 1 del switch como se ve.

... espero que le sirva a alguien ... un saludo.

    Pregunta:  61812 - THIS, CON HERENCIA
Autor:  Chango ska
Hola amigos, resulta que estuve realizando unos ejercicios con gráficos en java, y en un ejemplo que me encontré en un libro aparecía el siguiente código:

import java.awt.Frame;

public class CreaVentana{
public static void main(String args[]){
Ventana v = new Ventana ("Nueva ventana", 30, 80, 400, 250);
}
}

class Ventana extends Frame{
public Ventana(String titulo, int x, int y, int ancho, int alto){
super(titulo);
this.setBounds(x,y,ancho,alto);
this.setVisible(true);
}
}

la verdad todo me queda muy claro excepto una cosa, la forma en que maneja el this, yo lo había usado para acceder desde un método a las variables de instancia (atributos de la clase), pero en este ejemplo me resulta mas lógico utilizar la palabra super en lugar de this debido a que según entiendo esta llamando a los métodos de la superclase, en este caso Frame.

Hice el cambio en el código para ver si me marcaba algún error de compilación o ejecución y resulto que todo fue de maravilla y me funciono perfectamente utilizando mi codigo de la siguiente manera:

import java.awt.Frame;

public class CreaVentana{
public static void main(String args[]){
Ventana v = new Ventana ("Nueva ventana", 30, 80, 400, 250);
}
}

class Ventana extends Frame{
public Ventana(String titulo, int x, int y, int ancho, int alto){
super(titulo);
super.setBounds(x,y,ancho,alto);
super.setVisible(true);;
}
}

Por este motivo me gustaría saber la causa del porque los dos códigos se comportan de la misma manera y cual es la funcionalidad de utilizar la palabra reservada this cuando se esta utilizando la herencia.

Saludos y de antemano muchas gracias.
  Respuesta:  alex
Hola, es curioso, pero no se me había ocurrido usar super como tú lo has hecho ... :)

... bueno, la cosa es que, a mi entender, "this" (y por lo que veo también "súper"), al usarlo, es como si hubieras creado un objeto de una clase para acceder a sus atributos y métodos, pero en el caso de "this", se trata de un objeto que pertenece a la misma clase en la que lo usas y no hace falta crearlo previamente. Es muy útil, porque hay muchas ocasiones en las que algún constructor de algún otro objeto pide a su vez un objeto de la misma clase donde lo has creado, y con sólo pasarle "this" se resuelve el aparente lío. O si el objeto pidiera un objeto de la clase superior de la que se deriva, le pasas "super" y listo.

En el caso de "super" sucede lo mismo, pero al usarlo accederás sólo a los atributos y métodos de la clase superior (Frame). Al poner "super(titulo);" estás usando uno de los constructores de la clase Frame, que pide un String. Pero no es lo mismo que si hubieras usado el constructor por defecto, que no pide nada, y hubieras puesto "super(); super.tittle = titulo;" porque, en el primer caso el atributo "título" variará cuando varíe el string "tittle" de la clase Frame, cosa que en el segundo caso no sucederá.

El comportamiento en ambos casos es el mismo porque simplemente estás usando sólamente los métodos de la clase Frame, y como tu clase Ventana deriva de Frame, heredará todos sus atributos y métodos. O sea, tanto desde "this" (objeto de la clase Ventana) como desde "super" (objeto de la clase Frame) estás llamando a los métodos de la clase Frame.
Si tu clase Ventana no extendiera de la clase Frame, no podrías acceder a los métodos de Frame (setBounds(), setVisible(), etc ... )

Bueno, y hasta aquí te puedo contar desde mi punto de vista ... suerte!

    Pregunta:  61924 - BORRAR ULTIMA LETRA DE UN STRING EN JAVA
Autor:  Gina Peña
Hola.

Estoy trabajando en el entorno JCREATOR PRO 4.00 y deseo poner una función que me borre la ultima letra de un string.

Por ejemplo si escribo la palabra MARIA al presionar el boton borrar me muestre MARI, es decir la A ya se ha borrado.

Si alguien puede ayudarme en esto.

Yo trate haciendo lo siguiente:

String aux = label1.getText();
Int borra = aux.lenght()-1;
label1.setText(label1.getText(integer.toString(borra));

Pero no sirvio porque me devuelve es un 0 y me borra todas las letras.

Espero Ayuda. Gracias.
  Respuesta:  alex
wenas, supongo que en tu clase habrás implementado el interface "KeyListener" para que responda a los eventos del teclado mediante alguna de sus funciones:

public void keyTyped(KeyEvent e);
public void keyPressed(KeyEvent e);
public void keyReleased(KeyEvent e);

bien, pues los métodos de la clase "KeyEvent", que esas funciones piden como parámetros, te permitirán reconocer las teclas que se pulsen:

* Métodos de la clase KeyEvent:

- int getKeyChar() Obtiene el carácter Unicode asociado con el evento

- int getKeyCode() Obtiene el VKC de la tecla pulsada o soltada

Las VKC (Virtual KeyCodes) son unas constantes que se corresponden con las
teclas físicas del teclado, sin considerar minúsculas(que no tienen VKC).
Se indican con el prefijo VK_, como VK_SHIFT o VK_A.
La clase KeyEvent(en el package java.awt.event) define constantes VKC para
todas las teclas del teclado.

- boolean isActionKey() Indica si la tecla del evento es una ActionKey (HOME,
END, …)

- String getKeyText(int keyCode) Devuelve un String que describe el VKC, tal como
"HOME", "F1" o "A". Estos Strings se definen en el fichero awt.properties

- String getKeyModifiersText(int modifiers) Devuelve un String que describe las
teclas modificadoras, tales como"Shift" o "Ctrl+Shift" (fichero awt.properties)

* Métodos heredados de InputEvent:

- boolean isShiftDown(), boolean isControlDown(), boolean isMetaDown(),
boolean isAltDown(), int getModifiers()
Permiten identificar las teclas modificadoras

...

... después de todo esto ( que encontré por ahí no se ya ni cuándo), te pongo la parte de código que a mi me funciona para esa tecla:

(En este caso, he denominado "s" al texto original, que por algún sitio lo tendrás que hacer llegar, y "texto" al resultado final que se busca, para devolverlo donde se necesite)
...
String texto = "";
...
public void keyPressed(KeyEvent e){
...
...
//BACKSPACE
if(e.getKeyCode() == e.VK_BACK_SPACE){
//array de caracteres del texto
char k[] = new char[s.length()];
for(int i = 0 ; i < s.length(); i++){
k[i] = s.charAt(i);
}
//rellenamos el texto con el array
this.texto = "";
for(int i = 0 ; i < s.length()-1; i++){
this.texto += k[i];
}
}else{
this.texto = s + e.getKeyChar();
// esto es para poder escribir la "ñ" sin borrarse el texto
}
...
...
}

... espero que te sirva de algo ...
... saludos!!

    Pregunta:  61925 - DOUBLE TO STRING
Autor:  Ken ben
Hola a todos,
A ver si alguien me puede echar una manita.
Estoy intentando convertir de double a String, de esta forma:
for(int i=0; i<numLineas; i++){
String ssaldo = "";
double saldo = saldoInicial;
ssaldo = String.valueOf(saldo).replace('.',',');
salida.println(ssaldo);
}
el numLineas es igual a 16103 mas o menos, y lo extraño es que cada vez que ejecuto el programa, me da un resultado diferente; es decir que no logra convertir 52 valores, pero en otra ejecucion no logra convertir 115 y asi sucesivamente; y si que lo hace bien para el resto.

Sé que el problema esta en el momento de la conversion, pero no sé porq. Y los valores del vector que no se convierten bien son todos igual a: 1.41390650319393; que no coincide con ningun valor de mi vector!!

Tb he probado con:
//ssaldo = Double.toString(saldo).replace('.',',');
y resulta igual!!

Alguien tiene idea de cual puede ser el problema???
Gracias.
  Respuesta:  nelson e
buen dia depende del tipo de exception que te esta arrojando, existen situaciones donde el double no posee valor, lo que implica que como no validas que si el valor es cero entonces se interpreta como si fuese de longitud cero, y la clase que convierte presenta una exception por esta razon.

te sugiero que valides que si no posee valor entonces no hace la conversion en caso contrario pues que si haga la convesion. avisame si coninuas con tu problema y te paso un ejemplo

    Pregunta:  61996 - COMO PASO DATOS DE UN JFRAME A OTRO
Autor:  Elias Guifarro
Gracias de antemano por tu ayuda!

Estoy trabajando en Netbeans 6.5.1 y quisiera saber como puedo hacer para mandar informacion de un JFrame a otro. Ejemplo: tengo que en una ventana una tabla para que el usuario ingrese informacion y al hacer clic en un boton o en el menu que abra otra ventana y me grafique con los datos que ingrese en la tabla en el JFrame anterior. Ocupo ayuda desesperadamente, es para manana!
  Respuesta:  Luciano Luis Kuhliger Bertoni
Cuando llamas el otro JFrame usas new, que es el que llama el constructor de la nueva clase, entonces agrega tus datos como parámetros para la nueva clase, y en el constructor de la nueva clase define las variables que reciben los datos.

new NuevaClase(dato1, dato2, daton ).setVisible(true),


public class NuevaClase javax.swing.JFrame{
public NuevaClase(String d1, Integer d2, Double dn){
//---- Aquí código
}
}

Espero no sea muy tarde.
Saludos.

    Pregunta:  62091 - VISUALIZAR VALOR DE UNA VARIABLE EN JFORM
Autor:  Angel Gordillo
No hay manera de visualizar el valor de una variable en un campo dentro de un jForm. Me estoy iniciando en Java & Netbeans6.7 y estoy bloqueado en este punto.
  Respuesta:  Michael Rosero Peralta
trata de crear un JText y guardas tu variable en este JText, lo agregas al JForm y listo

    Pregunta:  62195 - PROBLEMAS CON AÑADIR UN HIJO A UN HIJO CON MESSAGEELEMENT
Autor:  Javier Del Rio
Hola a todos, el problema que tengo es que intento añadir un hijo a un hijo para que me quede una estructura de esta forma:

<padre>
<hijo>
<hijo2> <hijo2>
</hijo>
</padre>

y para ello utilizo el siguiente código:

MessageElement[] elementos = new MessageElement[1];
MessageElement[] elemhijos = new MessageElement[2];
elementos[0] = new MessageElement (new QName(nameSpace,"Padre"));
elemhijo[0]=new MessageElement (new QName(nameSpace,"Hijo1"),"hijito1");
elemhijo[1]=new MessageElement (new QName(nameSpace,"Hijo2"),"hijito2");
elemhijo[0].addchild(elemhijo[1]);
elementos[0].addChild(elemhijo[0]);

Dándome el error: java.lang.IllegalStateException: MessageElement.addChild called when an object value is present

¿Que estoy haciendo mal?


Un saludo y gracias de antemano
  Respuesta:  javier Del Rio
Bueno me voy a contestar yo. La respuesta estaba bastante clara pero no la veía. El padre nunca puede tener un valor, es decir:
elementos[0] = new MessageElement (new QName(nameSpace,"Padre"));

Lo que viene comillado como "Padre", hay que quitarlo de esta forma ya tendremos la etiqueta perfectamente configurada.

elementos[0] = new MessageElement (new QName(nameSpace));

Un saludo y espero que si le pasa a alguien más, sepa encontrarlo facilmente.

    Pregunta:  62224 - JOPTIONPANE CON MASCARA DE CONTRASEÑA
Autor:  Mont Lara
Hola que tal, aqui con un problema en java: como puedo poner una mascara de contraseña al ingresar datos desde un JOptionPane, no desde la pantalla, necesito que salga un cuadro de dialogo que pida la contraseña, espero me puedan ayudar, gracias
  Respuesta:  steven LUCUMI ALVAREZ
porque no creas un frame con el modelo de login de usuario creas una condicion que si la variable q
  Respuesta:  steven LUCUMI ALVAREZ
mira lo que quieres hacer lo debes hacer con un frame te recomendaria que buscaras como crear uno de hecho net beans tiene diseñador grafico podrias hacerlo con ese compilador :D

|<  <<  53 54 55 56 57 58 59 60 61 62 63  >>  >|