Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/06/2018, 04:35
TrinityCore
 
Fecha de Ingreso: agosto-2015
Ubicación: Rosario - Argentina
Mensajes: 424
Antigüedad: 8 años, 9 meses
Puntos: 12
JTextField - ¿posible bug?

Buenas gente, espero esten bien.

Veran, estoy añadiendo dos campos de texto y el problema es que se crean como dos campos por cada uno.

Es decir, añado un campo de texto y ese campo al pulsar tab me manda el foco a otro campo que esta como por debajo o encima, es algo raro y queria saber como solucionarlo.

Aqui el code entero

MAIN
La clase frame solo crea una ventana, asi que ahorro en colocar esa clase.
Código Java:
Ver original
  1. package OOP;
  2. import java.awt.*;
  3. import javax.swing.JFrame;
  4. public class Main{
  5.     public static void main(String[] args){
  6.        
  7.         int w = 600;
  8.         int h = 350;
  9.         int x = (Toolkit.getDefaultToolkit().getScreenSize().width/2)-(w/2);
  10.         int y = (Toolkit.getDefaultToolkit().getScreenSize().height/2)-(h/2);
  11.         Image icon = Toolkit.getDefaultToolkit().getImage("src/favicon.png");
  12.         Frame MyFrame = new Frame(x, y, w, h, "My First Java Windows", icon, JFrame.EXIT_ON_CLOSE);
  13.        
  14.         TextsFields Texts = new TextsFields();
  15.        
  16.         MyFrame.add(Texts);
  17.        
  18.         MyFrame.setVisible(true);
  19.        
  20.     }
  21. }

Aqui la clase de los textos.
Código Java:
Ver original
  1. package OOP;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import javax.swing.*;
  5.  
  6. public class TextsFields extends JPanel{
  7.  
  8.     public JTextField TextField1;
  9.     public JTextField TextField2;
  10.     public Graphics G;
  11.    
  12.     public void paintComponent(Graphics G){
  13.  
  14.         super.paintComponent(G);
  15.         this.setLayout(null);
  16.        
  17.         this.G = G;
  18.        
  19.         TextField1 = new JTextField();
  20.         TextField2 = new JTextField();
  21.         listener list = new listener();
  22.        
  23.         TextField1.setBounds(20, 20, 150, 30);
  24.         TextField2.setBounds(20, 60, 150, 30);
  25.    
  26.         TextField1.addFocusListener(list);
  27.         TextField2.addFocusListener(list);
  28.        
  29.         this.add(TextField1);
  30.         this.add(TextField2);
  31.    
  32.     }
  33.    
  34.     class listener extends FocusAdapter implements FocusListener{
  35.  
  36.         @Override
  37.         public void focusLost(FocusEvent e){
  38.            
  39.             String Sequence = "@";
  40.             String Value = TextField1.getText();
  41.             boolean check = false;
  42.            
  43.             for(int i = 0; i < Value.length(); i++){
  44.            
  45.                 if(Value.charAt(i) == Sequence.charAt(0)){
  46.                     check = true;
  47.                 }
  48.            
  49.             }
  50.            
  51.             if(check){
  52.                 System.out.println("Success Email.");
  53.             }else{
  54.                 System.out.println("Failed Email.");
  55.             }
  56.            
  57.         }
  58.  
  59.     }
  60.  
  61. }

Espero me ayuden, ya que ando en el curso de java donde cada vez se pone mas interesante y comenzamos a utilizar mucho los campos de textos, botones, etc..

Desde ya, gracias!