Foro Oficial de Java

xjuanch0x

Lanero Reconocido
25 Sep 2004
690
Claro que se puede...solo debes buscar deacuerdo a la informacion de la base de datos...por ejemplo si el libro esta prestado que coloque en el JTable Prestado ...y si no Disponible y cuando la vallas a mostrar busca la celda donde este Disponible colocas la propiedad background de esa celda en color "Azul " y si no en rojo..
 

sairus black

Lanero Reconocido
19 Ene 2008
1,848
Claro que se puede...solo debes buscar deacuerdo a la informacion de la base de datos...por ejemplo si el libro esta prestado que coloque en el JTable Prestado ...y si no Disponible y cuando la vallas a mostrar busca la celda donde este Disponible colocas la propiedad background de esa celda en color "Azul " y si no en rojo..

Perooo!!! bueno no se para eso hay que crear un JTableModel no...porque con el default hata donde se no se puede o si?.....
 

Yeison

Lanero Líder
Lanero VIP
1 Feb 2004
11,183
hey guys, is very easy, just follow the code:

final TableCellRenderer r = table.getDefaultRenderer(Float.class);
table.setDefaultRenderer(Special.class, new TableCellRenderer() {
public Component getTableCellRendererComponent(...) {
Color bg = figureOutBackgroundColor(value);
value = ((Special)value).getBalance();
Component c = r.getTableCellRendererComponent(...);
c.setBackground(bg);



and it's all..

bye
 

xjuanch0x

Lanero Reconocido
25 Sep 2004
690
Muy bien Yesion....parcero veo que me esta aventajando en java...ya casi no me acuerdo de esas vainas...desde que coji .NET he dejado de practicar...
 

sairus black

Lanero Reconocido
19 Ene 2008
1,848
hey guys, is very easy, just follow the code:

final TableCellRenderer r = table.getDefaultRenderer(Float.class);
table.setDefaultRenderer(Special.class, new TableCellRenderer() {
public Component getTableCellRendererComponent(...) {
Color bg = figureOutBackgroundColor(value);
value = ((Special)value).getBalance();
Component c = r.getTableCellRendererComponent(...);
c.setBackground(bg);
and it's all..
bye

Claro pero hay que apelar a un constructor....y eso fue precizamente a lo que yo me referia...es decir que en el default model no esta especificado el metodo para cambiar el color de una celda hay que definirlo por cuenta propia

offtopicBro este foro esta en español asi que bajele al bilingue sale.
 

sairus black

Lanero Reconocido
19 Ene 2008
1,848
jajajajaa sino que el codigo lo levante de una pagina en ingles y tuve que leer para acordarme jajajaja y quede bilingue por el momento:D

Jejeje ese Ctrl+C y Ctrl+V si que provoca unas pasadas de siglo jeje.

Volviendo al cuento de las jtables, otra cosa muy fastidiosa es el modo de selccion pro filas...eso me saca de quisio tener que redefinir ese listener para poder selccionar celdas...bueno sea como sea...aqui va el codigo de esa cosa, ojala algun dia modifiquen eso.

PHP:
  tabla.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
   
   if (ALLOW_ROW_SELECTION) 
   {
    ListSelectionModel rowSM = tabla.getSelectionModel();
    rowSM.addListSelectionListener(new ListSelectionListener() 
    {
     public void valueChanged(ListSelectionEvent e) 
     {
      ListSelectionModel lsm = (ListSelectionModel)e.getSource();
      if (!lsm.isSelectionEmpty())  
      {
       int selectedRow = lsm.getMinSelectionIndex();
      }
     }
    });
   } 
   else 
   {
    tabla.setRowSelectionAllowed(false);
   }

   if (ALLOW_COLUMN_SELECTION) 
   {
    if (ALLOW_ROW_SELECTION) 
    {
     tabla.setCellSelectionEnabled(true);
    } 
    tabla.setColumnSelectionAllowed(true);
    ListSelectionModel colSM = tabla.getColumnModel().getSelectionModel();
    colSM.addListSelectionListener(new ListSelectionListener() 
    {
     public void valueChanged(ListSelectionEvent e) 
     {
      ListSelectionModel lsm = (ListSelectionModel)e.getSource();
      if (!lsm.isSelectionEmpty()) 
      {
       int selectedCol = lsm.getMinSelectionIndex();
      }
     }
    });
   }

para que funcione en modo celda hay que tener unas varibles como estas

static private boolean ALLOW_COLUMN_SELECTION = true;
static private boolean ALLOW_ROW_SELECTION = true;

Y para alternar a modo fila o columna pues se ponen a true la que se desee y la otra a false....

Ya en serio tener que hacer esto es un fastidioooooooooooooooooooooooooooooo
 

Jesus_ADS

Lanero Regular
12 May 2006
44
Movimiento de Imagen

Buenas laneros mi pregunta es la siguiente...

Estoy tratando de hacer una pequeña animación de una imagen, tengo varias imágenes que al cambiarlas dan la sensación de una animación... la cosa es que a la vez que voy cambiando la imagen necesito irlo moviendo también... lo que tengo es esto:

PHP:
public void actionPerformed(ActionEvent e) {
        
        if ((i++ % 2) == 0) {
            jLabel1.setIcon(new ImageIcon(getClass().getResource("imagen1.png")));
        } else {
            jLabel1.setIcon(new ImageIcon(getClass().getResource("imagen2.png")));
        }
               
        jLabel1.setLocation(x++, y);
                                 
}

lo coloque en el actionPerformed para que lo haga según un timer dado, ese no es el problema, la cosa es que si coloco la siguiente parte sola

PHP:
if ((i++ % 2) == 0) {
      jLabel1.setIcon(new ImageIcon(getClass().getResource("imagen1.png")));
} else {
      jLabel1.setIcon(new ImageIcon(getClass().getResource("imagen2.png")));
}

me cambia fino la imagen, y si coloco la otra parte sola

PHP:
jLabel1.setLocation(x++, y);

lo mueve fino por toda la pantalla.

Mi Problema esta en que cuando coloco las dos partes juntas como esta en el primer código, no lo mueve, solo cambia la imagen...

No entiendo que pasa, por que por separado funciona y juntos no??? :(:(

De Verdad Agradezco su ayuda... Saludos =)
 

sairus black

Lanero Reconocido
19 Ene 2008
1,848
Buenas laneros mi pregunta es la siguiente...

Estoy tratando de hacer una pequeña animación de una imagen, tengo varias imágenes que al cambiarlas dan la sensación de una animación... la cosa es que a la vez que voy cambiando la imagen necesito irlo moviendo también...

bueno primero que todo para hacer una animacion lo mas recomendable es hacer un thread..pero sino puedes apelar a esto:

PHP:
import javax.swing.*;

import java.awt.event.*;
import java.awt.*;

public class anim extends Canvas
{
 static JFrame f = new JFrame("Animacion Falsa");
 static JMenuBar mb = new JMenuBar();
 static JMenuItem min = new JMenuItem("Chg");
 static Image img[] = new Image[3];
 static int ima = 0, x = 0, y = 0;
 
 public static void main(String args[])
 {
  new anim();      
 }
 
 public anim()
 {        
  img[0] = Toolkit.getDefaultToolkit().getImage("Img/ini.jpg");
  img[1] = Toolkit.getDefaultToolkit().getImage("Img/ecu.jpg");
  img[2] = Toolkit.getDefaultToolkit().getImage("Img/des.jpg");
    
  mb.add(min);
  min.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){inc();}});
  f.setJMenuBar(mb);
  
  this.setBounds(0, 0, 800, 500);
  this.setBackground(Color.black);
  f.add(this);
  
  
  f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent ew){System.exit(0);}});
  f.setLayout(null);
  f.setBounds(200, 200, 800, 500);
  f.setResizable(false);
  f.setVisible(true);
  
  inc();
 }
 
 public void inc()
 {
   if(ima < 2)      
   ima++;    
   else
    ima = 0;
   
   x+=10; 
   y+=10;
   repaint(); 
 }
  
 public void paint(Graphics g)
 {
  g.drawImage(img[ima], x, y, this);
 }
}

el problema con esto es quetoca pincher el menu para cambiar de cuadro...ademas de que es una falsedad...te sujiero bro que uses un thread es lo mejor.
 

Jesus_ADS

Lanero Regular
12 May 2006
44
bueno primero que todo para hacer una animacion lo mas recomendable es hacer un thread..pero sino puedes apelar a esto:

el problema con esto es quetoca pincher el menu para cambiar de cuadro...ademas de que es una falsedad...te sujiero bro que uses un thread es lo mejor.

Gracias por tu respuesta... a que te refieres con un thread? para mi un thread son procesos concurrentes dentro de un mismo programa no? yo pretendo hacerlo así, pero ya cuando logre mover uno pues con diferentes thread muevo a varios muñecos, la cosa es que no logro mover ni uno :( para que me serviría un thread en este caso?? Gracias
 

xtrapeque

Lanero Regular
29 Ago 2008
4
Programa en java, ayuda

Hola buenas,

Os hago una proposicion, vereis soy jugador del call of duty, y veo que falta una utilidad que permita a los usuarios conectarse para pedir una war, bueno igual esto os suena a chino pero vamos os explico, mis conocimientos de java son nulos y quisiera saber si alguien podria crear un programa con las siguientes caracteristicas, no creo que sea muy dificil de hacer:

1.- cliente
2.- servidor

desde el cliente 2 opciones "PEDIR WAR" y "BUSCAR WAR"
desde el cliente opcion PEDIR WAR (un campo donde poner un pequeño texto) una opcion para poner el texto "server" y que te de la opcion de "on y off" y otro campo para poner el numero de jugadores
desde el cliente opcion BUSCAR WAR (un listado de 10-15) informaciones que se han pasado al servidor desde la opcion PEDIR WAR

Servidor, lo unico que tendria que hacer es ir refrescando las notas que le pasan desde los clientes cada cierto tiempo y mandarselas a la opcion "BUSCAR WAR" del cliente

No se si me explicado bien.

Si alguien me pudiese ayudar le estaria muy muy agradecido, ya que somos muuuchos los que jugamos a este juego, ni que decir cabe que vale para otros muchos.

Gracias de antemano
 

xjuanch0x

Lanero Reconocido
25 Sep 2004
690
Man esa vaina no lo haria con Java ya que no ofrece muchas funcionalidades para trabajar con funciones nativas y servicios de windows ..recuerda que Java fue desarrollado para trabajar sobre la JVM y sus apis y no sobre las de Windows...para hacer eso que quieres debes hacerlo en C++ para que puedad interactuar de forma adecuada, rapida y segura con las librerias nativas de windows......
 

Yeison

Lanero Líder
Lanero VIP
1 Feb 2004
11,183
Hola buenas,

Os hago una proposicion, vereis soy jugador del call of duty, y veo que falta una utilidad que permita a los usuarios conectarse para pedir una war, bueno igual esto os suena a chino pero vamos os explico, mis conocimientos de java son nulos y quisiera saber si alguien podria crear un programa con las siguientes caracteristicas, no creo que sea muy dificil de hacer:

1.- cliente
2.- servidor

desde el cliente 2 opciones "PEDIR WAR" y "BUSCAR WAR"
desde el cliente opcion PEDIR WAR (un campo donde poner un pequeño texto) una opcion para poner el texto "server" y que te de la opcion de "on y off" y otro campo para poner el numero de jugadores
desde el cliente opcion BUSCAR WAR (un listado de 10-15) informaciones que se han pasado al servidor desde la opcion PEDIR WAR

Servidor, lo unico que tendria que hacer es ir refrescando las notas que le pasan desde los clientes cada cierto tiempo y mandarselas a la opcion "BUSCAR WAR" del cliente

No se si me explicado bien.

Si alguien me pudiese ayudar le estaria muy muy agradecido, ya que somos muuuchos los que jugamos a este juego, ni que decir cabe que vale para otros muchos.

Gracias de antemano

pues con java, claro que puedes, para eso esta todas las librerias del paquete java.net, donde puedes utilizar ServerSockets y Sockets para crear la conexion, si necesitas manejo de datagramas UDP tambien lo puedes hacer con este mismo paquete de java
 

NSlaver

Jack of all trades
16 Abr 2002
3,540
Hola buenas,

Os hago una proposicion, vereis soy jugador del call of duty, y veo que falta una utilidad que permita a los usuarios conectarse para pedir una war, bueno igual esto os suena a chino pero vamos os explico, mis conocimientos de java son nulos y quisiera saber si alguien podria crear un programa con las siguientes caracteristicas, no creo que sea muy dificil de hacer:

1.- cliente
2.- servidor

desde el cliente 2 opciones "PEDIR WAR" y "BUSCAR WAR"
desde el cliente opcion PEDIR WAR (un campo donde poner un pequeño texto) una opcion para poner el texto "server" y que te de la opcion de "on y off" y otro campo para poner el numero de jugadores
desde el cliente opcion BUSCAR WAR (un listado de 10-15) informaciones que se han pasado al servidor desde la opcion PEDIR WAR

Servidor, lo unico que tendria que hacer es ir refrescando las notas que le pasan desde los clientes cada cierto tiempo y mandarselas a la opcion "BUSCAR WAR" del cliente

No se si me explicado bien.

Si alguien me pudiese ayudar le estaria muy muy agradecido, ya que somos muuuchos los que jugamos a este juego, ni que decir cabe que vale para otros muchos.

Gracias de antemano

Yo lo hago en C# si me dice que es war
 

xjuanch0x

Lanero Reconocido
25 Sep 2004
690
Queridos Señores...me gustaria saber como demonios van hacer para que Java reconosca las Librerias Dinamicas del Call Of Duty, detecte el numero de personas que haran War...porque esa seria la gracia del juego, que reconosca las personas que hara War y las Cargue y las deje conectadas y lista solo para logearse y jugar....bueno...si alquien sabe como hacer eso....nojoda me le quito el sombrero y lo respeto...porque una cosa es hacer las aplicaciones Con datagramas y socket que hacian en la universidad ah hacer que Java y La JVM trabajen de forma nativa con el Juego...recuerden que java solo trabaja con las Api de JDK y o con las de Windows (WinApi)...
 

xtrapeque

Lanero Regular
29 Ago 2008
4
no no, xjuanch0x, no me entendiste o no me explique bien, el programa cliente solo lo que tiene que hacer es informar de la gente que quiere war y el numero ,en el pequeño campo de texto se pondria el XFIRE (como msn pero para los juegos) y luego ellos ya que queden para jugar. no tiene que reconocer el call of duty ni nada, simplemente mandar la info al servidor para que el la devuelva a los clientes y saber si hay wars nuevas.





pd.: war, partido entre 2 clanes o grupos de personas, 5vs5.... etcs
 

xjuanch0x

Lanero Reconocido
25 Sep 2004
690
Ah entoces esa vaina es facil....hay que hacerla con sockets y listo...eso es muy facil..solo debes hacer una clase que maneje los socktes y las conexciones y despues implementarlo desde un applets o una pagina JSP y listo.....es mas en inernet ya hay uno ejemplos listo para implementarse...