estoy trabajando en una clase de mantencion usando este software como base
http://www.lawebdelprogramador.com/c...de-letras.html
esta vez si tengo una peticion de ayuda importante, este programa hay que agregar las palabras a la sopa de letras una a una
con este codigo:
Código Java:
Ver original
private Sopaletras2 sopa; private int posX,posY,forma; private JRadioButton BotonOpcion1,BotonOpcion2,BotonOpcion3,BotonOpcion4,BotonOpcion5,BotonOpcion6,BotonOpcion7,BotonOpcion8; private boolean booResalta; //private Color color; public frmInsertaPalabra(Sopaletras2 xsopa, int i, int j, boolean bool){ super(); sopa = xsopa; posX = i; posY = j; forma = 2; booResalta = bool; //color = xcolor; Ini(); this.setTitle("Insertar Palabra"); //Titulo de ventana this.setSize(410,325); //Tamaño de ventana this.setModal(true); //Establece ventana modal } public void Ini(){ jcbChars.setSelected(true); jcbChars.setFocusable(false); texto.addKeyListener(this); BotonOpcion1.setSelected(true); BotonOpcion1.setFocusable(false); BotonOpcion1.addActionListener(this); BotonOpcion2.addActionListener(this); BotonOpcion2.setFocusable(false); BotonOpcion3.addActionListener(this); BotonOpcion3.setFocusable(false); BotonOpcion4.addActionListener(this); BotonOpcion4.setFocusable(false); BotonOpcion5.addActionListener(this); BotonOpcion5.setFocusable(false); BotonOpcion6.addActionListener(this); BotonOpcion6.setFocusable(false); BotonOpcion7.addActionListener(this); BotonOpcion7.setFocusable(false); BotonOpcion8.addActionListener(this); BotonOpcion8.setFocusable(false); AgrupaBoton.add(BotonOpcion1); AgrupaBoton.add(BotonOpcion2); AgrupaBoton.add(BotonOpcion3); AgrupaBoton.add(BotonOpcion4); AgrupaBoton.add(BotonOpcion5); AgrupaBoton.add(BotonOpcion6); AgrupaBoton.add(BotonOpcion7); AgrupaBoton.add(BotonOpcion8); pane.add(BotonOpcion1); pane.add(BotonOpcion2); pane.add(BotonOpcion3); pane.add(BotonOpcion4); pane3.add(BotonOpcion5); pane3.add(BotonOpcion6); pane4.add(BotonOpcion7); pane4.add(BotonOpcion8); JBSalir.addActionListener(this); JBAceptar.addActionListener(this); pane2.add(JBSalir); pane2.add(JBAceptar); panePrincipal.add(label); panePrincipal.add(texto); panePrincipal.add(label3); panePrincipal.add(jcbChars); panePrincipal.add(label2); panePrincipal.add(pane); panePrincipal.add(pane3); panePrincipal.add(pane4); panePrincipal.add(pane2); this.add(panePrincipal); } char c[],x; int i,j,k; int error = 0; c = s.toCharArray(); for( i=0 ; i < cadena.length() && error == 0;i++){ x = cadena.charAt(i); k = 0; for(j = 0 ; j < s.length() && k == 0;j++){ if(x==c[j]) k++; } if( k == 0) error++; } if(error == 0) return true; else return false; } public void AgregarPalabra(){ if(s.length()> 0){ int num = sopa.Verify(s, posX, posY, forma); if(num == 0){ if(jcbChars.isSelected()){ if(verifyString(s,sopa.getCaracteresPermitidos())){ sopa.setPalabra(s, posX, posY, forma); if(booResalta) this.dispose(); }else JOptionPane.showMessageDialog(rootPane, "Palabra no agregada. La palabra contiene letras que no forman parte de la sopa de letras. Tambien se distingue entre mayusculas y minusculas.", "jSopaLetras" , 1); }else{ sopa.setPalabra(s, posX, posY, forma); if(booResalta) this.dispose(); } }else if (num == 1) JOptionPane.showMessageDialog(rootPane, "Palabra muy extensa para ser colocada", "jSopaLetras" , 1); else if(num == 2) JOptionPane.showMessageDialog(rootPane, "Palabra se cruza con otra ya agregada anteriormente", "jSopaLetras" , 1); }else } if(obj == JBSalir){ this.dispose(); }else if(obj == BotonOpcion1){ forma = 2; }else if(obj == BotonOpcion2){ forma = 1; }else if (obj == BotonOpcion3){ forma = 3; }else if(obj == BotonOpcion4){ forma = 4; }else if(obj == BotonOpcion5){ forma = 5; }else if(obj == BotonOpcion6){ forma = 6; }else if(obj == BotonOpcion7){ forma = 7; }else if(obj == BotonOpcion8){ forma = 8; }else if(obj == JBAceptar){ AgregarPalabra(); } } //se agrega funcion que obliga las letras en el textbox a ser mayusculas char c=e.getKeyChar(); //"e" es el nombre asignado al evento de tecla "c" representa a las letras c=cad.charAt(0); e.setKeyChar(c); } //throw new UnsupportedOperationException("Not supported yet."); } if(e.getKeyChar() == '\n') AgregarPalabra(); if(e.getKeyCode() == 27) this.dispose(); //this.setTitle("" + this.getWidth() + " * " + this.getHeight()); //this.setTitle("KeyCode = " + e.getKeyCode()); } // new UnsupportedOperationException("Not supported yet."); } }
Este codigo se accesa haciendo click desde la tabla princpal,
http://www.subirimagenes.com/imageda...reenshot11.jpg
(el codigo esta en el link con el programa al principio dle post,muy largo para ponerlo aqui)
La cantidad de lineas, columnas y letras vienen de este codigo que es la primera pantalla que se ve al iniciar el sistema (lo pondria pero el foro no permite mas de 10000 lineas)
[/HIGHLIGHT]
Ahora, lo que he tratado de hacer pero no he podido es :
1- reemplazar el crear palabra para que al crear una sopa ya vengan con palabras de un funcion que tenga las palabras y que se pongan al azar , por ejemplo 4 de una lista de 10 elegidas al azar en posiciones al azar.
2-al hacer click en la tabla si se logra encontrar una palabra que se sume 10 puntos a un contador.