Hilo oficial Java

1, 2, 3, 4, 5, 6
Harl escribió:
..............................................................

Una "pequeña" duda que no logro encontrar
Tengo una aplizazión que consime bastante memoria

El caso es que me hace falta cambiar la memoria del heap
(usando)

java -Xms32m -Xmx128m -jar archivo.jar

¿Existe alguna forma de especificar ese valor sin usar la linea
de comandos?

Como alguna opcióm del template del jar o algo asi [comor?]


Lo único que se me ocurre no es que aumentes la memoria de Heap, sino que la liberes forzando el colector de basura. mirate

System.gc()
Runtime.gc()
System.runFinalization()

De la clase java.lang.System

Usalos con cuidado para no finalizar objetos que aun siguen referenciados
No me he explicado bien.
Es que necesita tanta memoria como para sobrepasar los 64 MB
(al menos en ciertas ocasiones)

Si ejecuto el .jar con

java -Xms32m -Xmx128m -jar archivo.jar

No hay problema.

Lo que me gustaria es forzar a que java siempre tome
esos parametros como implicitos.
De manera que cuando alguien ejecute ese .jar haciendole click
o sin especificar parametros ya tome un limite de 128MB
( o el que me convenga)
Ya, ya, si te explicaste bien, por eso te comente lod e antes, por si la memoria la necesitabas nada mas arrancar la aplicación, o mas tarde.

No se solo se me ocurre que podia ir en el MANIFEST.MF al igual que alli se le indica al jar la direccion de la clase principal, se le podria indicar esos parámetros.

O quizas, como al crear el metodo inicial main se pone:

public static void main (String[] args)
{
}

y puede recibir parámetros, quizas esos parámetros que pones fuera para aumentar la memoria, los puedas meter dentro
En el caso de un applet, cómo muestro una pantalla con información? Es para q apareciese una ayuda al pulsar un jbutton.

La clase JDialog sólo sirve para un frame?

En el caso de tener un applet, cómo lo hago?

gracias.

creo q voy a usar "JOptionPane.showMessageDialog" y a volar...

la putada es q es modal, mientras q el jdialog se puede configurar pa q sea modal o no.

Pero a estas alturas... estoy hasta el mismisimo del pfc...

Q opináis?

Gracias
a ver,que no he conseguido hacer lo del foco aún a pesar de la ayuda.
La idea es que al pulsar un botón de la principal se crea otra ventana(Jframe).
Cómo podemos hacer para que mientras la segunda ventana está abierta,no se pueda ir a la primera?.

REcuerdo que en VB era una chorrada,pero por más que miro,no doy con ello.
he instalado el: j2re-1_4_2_11-windows-i586-p.exe y el JCreator LE 3_00.exe y cuando compilo me dice que no encuentra el javac.exe :S


parecidos a ese tng en el hd el javaw.exe.. alguien sabe cm arreglarlo??


muchas gracias:)
javac: creo q eso es el compilador de java

supongo q al jcreator le tendrás q configurar algun directorio para q sepa donde está el jdk.

pero sólo supongo, prueba a ver...
Al Jcreator dile donde esta javac , tendrá una opción.

P.D: Mi consejo personal e sque huyas del Jcreator :P
¿Alguien sabe como hacer, al igual q se muestra un ventanita de información con el mensaje q sea, mostrar una ventanita pero q pueda contener un label o panel con un dibujo gif o png?

Please me urge tela :(

Mierda de pfc...
Tendrias que crear un Jdialog y meterle el contenido deseado.

Para meter un gif o png la forma más rápida es que crees
un JLabel con la imagen deseada como icono

asi a lo bruto

JDialog j=new JDialog();

JLabel l = new JLabel (new ImageIcon(ClassLoader.getSystemResource("url imagen")));

j.add(l);

j.pack();// Ajusta el tamaño al contenido

j.setVisible(true);
Gracias Harl, pero ya leí el pfc el miércoles [jaja] De toas formas lo copio, porq me interesaba bastante.

Un saludo.
Buenas, necesito una ayudita, tengo que hacer un applet en el cual se muestren una serie de imagenes, una detras de otra, bien esto está hecho, la cuestion es que quisiera que al pasar de una a otra, pasaran con un efecto, por jemplo un fade a l aimagen o la simulación de una hoja de un libro, o cosas de estas, bien no encuentro nada en ningun sitio de como hacerlo, alguno sabeis como hacerlo? supongo que necesitaré de alguna librería externa, en la API general no he encontrado nada.

Saludos y gracias
Hola a todos. He intentado buscar la respuesta en el laargo hilo, pero no la he encontrado. Os comento lo que quiero hacer:

Quiero crear una tabla, que represente un mapa, en la que yo vaya seleccionando las celdas quiero que cambien de color, para poder representar por ejemplo las paredes en negro. Hice esto mismo con Builder y no tuve problema. En principio pensé en utilizar un jTable, pero no consigo ni siquiera obtener la tabla de las dimensiones adecuadas. ¿Sabeis con que elemento podria realizarlo?

Gracias ;)
Hola,
quiero preguntaros una cosa k seguro k sera elemental sencilla y una tonteria de 2 línias de código, pero es que llebo un rato peleándome y tmb buscando y no encuentro nada.

Es sobre los numeros reales en Java.

EDIT: Solucionado, no me hagais caso ya ^^u

Dw!
¿Sabeis como ir creando varios objetos dentro de un bucle, en el que claro esta, cada nombre sea distinto? Es decir, para poder variar el nombre de un objeto segun una variable que vaya cambiando con cada ciclo del bucle (por ejemplo, un tipico contador, es decir, un int)
NaGLUX escribió:Hola a todos. He intentado buscar la respuesta en el laargo hilo, pero no la he encontrado. Os comento lo que quiero hacer:

Quiero crear una tabla, que represente un mapa, en la que yo vaya seleccionando las celdas quiero que cambien de color, para poder representar por ejemplo las paredes en negro. Hice esto mismo con Builder y no tuve problema. En principio pensé en utilizar un jTable, pero no consigo ni siquiera obtener la tabla de las dimensiones adecuadas. ¿Sabeis con que elemento podria realizarlo?

Gracias ;)


Si lo que quieres es definir el tamaño de la tabla lo normal
es meterla en un JScroll panel y definir este de cierto
tamaño

JScrollPane scrollpanel = new JScrollPane (tabla);
scrollpanel.setPreferredSize(new Dimension(600,450));

Para ajustar el tamaño de las celdas:

tabla.setRowHeight(Y);//ajusta la altura de las filas

//Ajusta el tamaño de las columnas (uno por una)
tabla.getColumnModel().getColumn(i).setMinWidth(X);
tabla.getColumnModel().getColumn(i).setMaxWidth(X);

De esta forma despues no se podrian redimensionar
Si solo ajusta MinWidth las columnas serian de tamaño X
y se podrian estirar ...

tabla.setCellSelectionEnabled(true); //hara que se pueda seleccionar
//una casilla sin seleccionar toda la fila

Para que cambie el color de las celdas tendrias que definir
su CellRender. (para definir un color o comportamiento
especifico

tablaj.setDefaultRenderer(String.class,new miTableCellRenderer());

Este ejemplo lo que hace es un calendario (y pone los domingos en
rojo.
En principio el render devolvera un JLabel y hay por ejemplo
podrias devolver un JLabel con un Icono con el fragmento
de mapa

public class miTableCellRenderer extends DefaultTableCellRenderer

{
   

   

    public Component getTableCellRendererComponent (JTable table, Object value, boolean isSelected,boolean hasFocus, int row, int column) {

          
   //obtenes el componente por defecto

        Component cell = super.getTableCellRendererComponent   (table, value, isSelected, hasFocus, row, column);

       

   //si es domingo lo ponemos en rojo

        if (column==6){

             cell.setForeground( Color.red );

        }else{

           cell.setForeground(Color.black);

   }


        return cell;



    }

}
wenas, esta pregunta creo que no se si sera bien ponerla aqui o no pero...

alguien que usa el eclipse lo teine en castellano?

supuestamente yo me he bajado el languaje pack que dicen que funciona... y nada, aki sigo con mi eclipse en ingles.
contestad please
Kendo escribió:¿Sabeis como ir creando varios objetos dentro de un bucle, en el que claro esta, cada nombre sea distinto? Es decir, para poder variar el nombre de un objeto segun una variable que vaya cambiando con cada ciclo del bucle (por ejemplo, un tipico contador, es decir, un int)



Eso que yo sepa no se puede, lo más parecido es crear un array de ese tipo de objeto e ir rellenandolo, asi luego puedes ir accediendo uno a uno.

Aunque te aconsejo que uses listas abstractas, como los ArrayList.
Bueno, yo quisiera usar el eclipse (me parece mejor que el netbeans porque sirve para c++ y php entre otros) y trato de hacer la edicion exclusivamente a traves de entorno grafico, como hace netbeans. Al eclipse le he metido el Visual Editor, creo el nuevo proyecto y dentro le meto una visual class, añado un JFrame y al meter los swing components me salen 5 cuadros (north, south, center, west y east) y soy incapaz de poner el programa a andar. En cambio en netbeans va bien. Me podeis echar una mano?
Muchas gracias por tu respuesta Harl ;)
Me olvidaba, os dejo una captura para que veais a qué me refiero.

Adjuntos

Wenas!.Sigo con mi práctica de reconocedor de nombres propios. Lo tengo casi todo hecho pero me falta un pequeño detalle.

¿Sabríais cómo hacer una clase con sus métodos correspondientes, que divida un texto en palabras? O sea, se le pasa un string y lo divide en palabras.

Ahora viene lo difícil: debe considerar como una misma palabra todas las sucesiones de palabras que empiecen por mayúsculas. Por ejemplo, Miguel Ángel sería sólo una palabra porque son 2 palabras que empiezan (las dos) por mayúscula. Esta segunda parte es la que no consigo hacer bien.

Ayuda please!

Gracias a todos compañeros!

[bye]
Con stringtokenicer puedes dividir ese texto, pero puedes hacer que mire el primer caracter despues de espacio y si es mayuscula y la palabra anterior tambien lo era pues no lo divides, no se si me explico.

Por ejemplo tienes Miguel Angel divides y miras el primer caracter y el primer caracter despues de espacio y si son mayusculas no los divides y los pones como nombre.
Yo lo de las palabras lo haria simplemente con el metodo slipt de la
clase String
.split("[\\s\\p{Punct}]");
Te sepera por espacios y signos de puntuación

Esto te da un array de Strings y de hay lo iria metiendo en otro
de manera que si la palabra empieza por mayusculas la
concateno a la anterior

Aunque ahoroa que lo pineso eso converitiria
Antonio Jose,Manuel Francisco
en una sola palabra
Antonio Jose Manuel Francisco




A ver si me podéis ayudar un exto tengo que imprimir una JTable
y en la cabecera de página necesito varias lineas (en realidad necesito alguna cabecera más compleja pero bueno)


java.text.MessageFormat headerFormat = new java.text.Messagjava.text.MessageFormateheaderFormat

anewxjava.text.MessageFormatormat = new nCabecera.Messjava.text.MessageFormat

footerFormatt(newbjava.text.MessageFormatheaderFormat,ftablaj.printtJTable.PrintMode.FIT

¿Alguien sabe si la clase MessageFormat admite lineas o si se puede
imprmir la JTable con una cabecera de otro tipo
que me de más libertad?
A ver si alguien me ayuda....

Tengo un objeto, llamémosle objeto1 y quiero pasar dicho objeto de una página web a otra por medio de un post. Obviamente estoy usando servlets y cosas de esas.

Bueno al grano. Lo que necesito es crear un String con las características del objeto para que lo pueda leer la segunda página (o clase). Se que el objeto tiene que ser serializable y sé cómo se graba en un archivo, pero no sé escribirlo en un string. supongooque será con ObjectOutputStream, pero no pillo cómo va.

alguien me puede ayudar porfi?


EDITO

¿alguien sabe cómo hacer para leer un fichero y escribir al final de él?
Darkoo escribió:

EDITO

¿alguien sabe cómo hacer para leer un fichero y escribir al final de él?

En el método de escritura de ficheros, creoq eu era FileOutPutStream puedes pasarle o uno o dos parametros, el primero es la cadena a escribir el segundo es o true o false segun pongas true o false, crea un fichero o añade la cadena al final, miratelo en la API que no me acuerdo como era exactamente ;)
Harl escribió:¿Alguien sabe si la clase MessageFormat admite lineas o si se puede
imprmir la JTable con una cabecera de otro tipo
que me de más libertad?


He estado buscando por google y parece ser que no es posible [looco]
para hacerlo tendria que renderizar yo mismo la tabla y todo eso



Lo que ahora estoy buscando y que me acabare volviendo loco
es como configurar la impresora por defecto.

Es que necesito imprimir varias componentes por separado
pero sin dialogo.
Esto hace que salgan por la impresora predeterminada por
el sistema.
¿alguien conoce alguna forma de cambiar esta impresora desde
mi aplicación (ya sea solo para la apliación o para todo el
sistema ya es que me da igual)?


Edit:
Uso el metodo
print(JTable.PrintMode printMode,
MessageFormat headerFormat,
MessageFormat footerFormat,
boolean showPrintDialog,
PrintRequestAttributeSet attr,
boolean interactive)

Con PrintRequestAttributeSet se pueden configurar parametros
como los margenes o el tamaño del papel pero no la impresora
La impresora se puede configurar con PrintAttributeSet
(vaya #$½&)
Buenas, me estoy haciendo un programilla para crear listas de reproducción M3U a partir de lso directorios de donde tengo los MP3 ya está basicamente terminado, pero como loq ue buscaba es comodidad y rapidez mas que nada, pues quisiera integrarlo en el menu que sale al pulsar el botón derecho, tipo winrar que le das y comprime por ejemplo, bien, queria saber si eso se puede hacer, ¿cómo puedo integrar ese menu de por ejemplo hacer lista? las funciones para que las haga, está hecho y todo lo demas también, la cuestión es que no se como meter eso en el menu del botón derecho

Gracias
Alguien por aqui domina swing...

Saludos
SUNAMI escribió:Alguien por aqui domina swing...

Saludos


¿Eso es una pregunta? ¿o una afirmación?

Si tienes alguna duda di la, no voy ha decir que domine swing
pero algo he hecho (y si no alguien más podría ayudarte)

daniel_5 eso de cambiar los menus creo que se hace
editando el registro del sistema aunque la verdad es que nunca
he tocada ese tema...
Cita Harl:
¿Eso es una pregunta? ¿o una afirmación?
Si tienes alguna duda di la, no voy ha decir que domine swingpero algo he hecho (y si no alguien más podría ayudarte)
Pues la verdad es que no me quiero comer demasiado la cabeza con la gestion por eventos hasta que no tenga mas tiempo.

Creo que con un secillo ejemplo que tengais por ahi comentado me sobrara para empezar. No tengo miedo de tirar de libro, pero si me aydais a verlo de una forma mas sencilla mejor.

PD: Si alguien se anima por ahi tengo el email.

Saludos.
Pero que es lo que quieres hacer con swing? por que swing es muuuy amplia
Lo que quiero hacer es empezar hacer cosillas muy sencillas en varias ventanas y ganarme la capacidad de abstraccion lo mas facilmente posible.

Seguro que alguien que entienda me hara ahorrar tiempo y dinero, me entendeis no?
http://www.google.es/search?sourceid=navclient-ff&ie=UTF-8&rls=GGGL,GGGL:2005-09,GGGL:es&q=java+swing+tutorial

Hay muchos tutoriales en Internet con codigo fuente incluido
busca el más sencillito y con ese ve modificando y probando.
Ya tio lo que pasa es que la gestion por eventos de momento me da un poco de cosa y seguro que luego se complicara exponencialmente. cuando acaben los examenes me mlo mirare en serio.

Saludos.
La gestion de eventos es relativamente sencilla.
Por ejemplo lo implementando la clase ActionListener ()
http://java.sun.com/j2se/1.4.2/docs/api/java/awt/event/ActionListener.html

A mi me gusta usar la propia ventana (puedes crear una clase especificamente para ello)

Asi en la clase que extienda la interfaz ActionListener implementas
el metodo
actionPerformed(ActionEvent e)

Que sera el que sea llamado cuando se pulsa el boton

Ej:

public class lo_quesea extends JFrame implements ActionListener{

   JButton boton1 = new JButton();
   boton1.addActionListener(this);


....

    public void actionPerformed(ActionEvent e) {

   if (e.getSource()==boton1) {
      
   }else if (e.getSource()==boton2){
      
   }...

   }


Otra forma es crear un listener para cada boton


           boton3.addActionListener(new java.awt.event.ActionListener() {
               public void actionPerformed(java.awt.event.ActionEvent evt) {
                   //-------------
         //funcion de ese boton
         //--------------
               }
           });


El resto de eventos funcionan más o menos igual, siempre suele ser
cosa de interfaces
Buenas, a ver si me podeis ayudar :P

Resulta que supongamso que tengo un vector con números del 0 al 9 por ejemplo

Hay algún método que si lso tengo ordenados, me los desordene? XD basicamente que los ponga donde quiera por ejemplo

Tengo: [0,1,2,3,4,5,6,7,8,9]
Quiero: [1,3,5,9,2,6,4,7,8,0]

La cuestion es que podria llenarlo de forma aleatoria, pero lso números no deben de ser reptidos, y claro mirando cada vez que se crea un número a ver si ya está, puede ser eterno XD y si es un vector de digamos 1000 elementos mas aun.

Gracias

EDIT: Problema medio resulto, hay un método shuffle XD
Bueno la verdad con la linea de comandos en java o tenía problemas, pero ahora estoy con los applet y nada de nada.

Pues hechen un ojo a lo ke tengo ke hacer son 2 clasico problemas:


1- Escriba un applet que juegue a “adivinar el número” de la siguiente manera: su programa elige el número a adivinar, seleccionando un entero al azar en el rango 1 a 1000. El applet despliega la indicación “Adivine un número entre 1 y 1000” junto a un JTextField. El jugador escribe un primer intento en el JTextField y oprime la tecla entrar. Si el jugador no adivinóm su programa debe desplegar Demasiado alto. Intente otra vez, o Demasiado bajo. Intente otra vez en la barra de estado, para ayudar al jugador y debe de limpiar el JTextField para que el usuario pueda introducir el siguiente intento. Cuando acierta despliegue que tuvo éxito o palabras de aliento en la barra de estado. Limpiar el JTextField para que el usuario pueda seguir jugando. (nota : debe de dársele 7 intentos para calcular el número, caso contrario se despliega el número y pierde )

2- . Escriba una aplicación que simule un protector de pantalla. La aplicación debe dibujar líneas de manera aleatoria con el uso de método drawLine. Después de dibujar 100 líneas, la aplicación debe de limpiarse a sí misma y comenzar a dibujar las líneas de nuevo. Para permitir que el programa dibuje de manera continua, coloque una llamada a repaint como la última línea del método Paint.

PD: Ya termine el primero [bye]

PD: Podrian ayudarme con el segundo no consigo hacer un delay entre linea y linea, tampoko se komo ponerle valores aleatorios a drawLine por ke lo ke acepta son int y random produce doble
Random rnd = new Random();
int x = rnd.nextInt();

X es un entero, ahi tienes un número aleatorio entero

Para el delay:

delay = 1000;
timer.setDelay(delay);
daniel_5 seré muy inutil pero me dda error ese código, no se si será algún problema con objetos astractos o si de palno soy muy inutil
Que código? el del random o el del delay, que error te da? a mi me va bien.
Los 2 me dan error................ cannot find symbol ambos

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.text.NumberFormat;
import java.net.*;

public class protector_pantalla extends Applet
{
public void paint(Graphics dibujar)
{
int n_lineas;
int delay;

n_lineas = 100;
for (int i=0;n_lineas > i;i++)
{
Random rnd = new Random();
int x = rnd.nextInt();

Random rnd = new Random();
int y = rnd.nextInt();

Random rnd = new Random();
int z = rnd.nextInt();

Random rnd = new Random();
int w = rnd.nextInt();

dibujar.drawLine(x,y,z,w);

delay = 1000;
timer.setDelay(delay);
}

repaint();
}

}


[buuuaaaa] [buuuaaaa] [buuuaaaa] [buuuaaaa] [buuuaaaa]
lo del delay no tengo tiempo para mirarlo, pero como no pongas mas código no se que te puede pasar.

lo otro funciona perfectamente:
import java.util.*;


public class Inicio
{
  public static void main(String[] args)
  {
    Random rnd = new Random();
    int x = rnd.nextInt();

    System.out.println(x);
   
   }
}
Para el random necesitas importar

P.D: le estas metiendo un entero a DrawLine que puede ser muy alto, crea enteros del rango de DrawLine
P.D: le estas metiendo un entero a DrawLine que puede ser muy alto, crea enteros del rango de DrawLine


.............Alguien sabe como convertir un double a un int????

............Alguien sabe como se usa el delay????????

[bye]
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Double.html

El metodo intValue() de la clase Double te hace la conversión

Pero no es lo mismo la clase Double que un double
tendrias que crearlo con new Double(valor_double)


¿No he usado nunca lo de delay pero no tevale con sleep (metodo statico de la clase Thread)?

try {
Thread.sleep(1000);
}catch (java.lang.InterruptedException ex){
}
Pues, y ame funciona asi:

int x =(int)(Math.random()*10);

Y listo de la a x un valor int de 0 a 10, sin más preblemas y sin cast ni nada.

¿No he usado nunca lo de delay pero no tevale con sleep (metodo statico de la clase Thread)?


Pues no lo he intentado, pero imagino ke es solo para hilos.... o será para cualkier proceso??

Bueno voy a probar ahi te cuento komo me fue..... [burla2]
Cita de Harl:

boton1.addActionListener(this);

e.getSource()...

Muchas gracias tio, pero la verdad es que no se porque pasas como argumento "this" y tampoco lo que hace e.getSource(), pero gracias de verdad por tu tiempo empleado.

Ahora estoy haciendo un mini proyecto y no encuentro en nigun sitio como puedo grabar un fichero en el diskete desde windows, se hacerlo a un fichero dentro del directorio de trabajo pero eso no es ningun misterio. Si alguien me puede echar un cable que me lo diga.

En linux supongo que sera mas dificil pero tambien me podria valer a la hora de presentar el evaluable final.

Saludos y gracias.
Ese argumento es un objeto que implemente la interfaz
ActionListener

Si es la propia ventana donde creas el botón entonces
es this lo que le tienes que pasar.

Lo del e.getSource es por que si utilizas un solo objeto
para todos los botones cuando pulses el botón es ejecutar el
metodo
actionPerformed(ActionEvent e)

Si tienes más de un boton luego tendrás que ver que botón es ...
(boton u otra componente ...)

Con la otra forma que te dije, puedes crear una función para
cada boton (a lo mejor eso te resulta más claro)

boton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
//-------------
//funcion de ese boton
//--------------
funcion_boton3();

}
});

Para evitar problemas dentro del action listener mete solo
una función y dentro de esa todo lo que tengas que hacer.
Creeme que te evitaras complicaciones para acceder variables
y métodos de la clase.
También si quieres le puedes pasar como parámetro el
java.awt.event.ActionEvent evt
(útil si quieres obtener datos como el numero de clicks
y cosas así ...)
Muchas gracias harl pero mira a ver si me puedes decir como puedo grabar un fichero a disquete.

Salud.
Ponle la ruta del disquette al método de crear o modificar archivo y listo A:\ o lo que sea
299 respuestas
1, 2, 3, 4, 5, 6