Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите найти ошибку в работе с JTextFiled / 9 сообщений из 9, страница 1 из 1
10.04.2007, 12:43:15
    #34449683
Кореец
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в работе с JTextFiled
Всего 3 класса:
1. PanelLogon. Панель, на которой два текстовых поля(имя пользователя и пароль).После ввода логина и пароля, а затем нажатия VK_ENTER, пробуем залогиниться к серверу(данная часть в коде опущена, для упрощения)...
Эта панель добавляется во время создания FrmShortLogon.
2. FrmShortLogon. Это диалоговое окошко, которое содержит в себе обработчики нажатий клавиш и открывается в модальном режиме.
3. testPanel - класс для тестирования. на нем большая кнопка которая вызывает FrmShortLogon.

Трабла в следующем - почему то компонент jTextFiled/jPasswordField запоминает предыдущие вводы значений в него!!! При этом надо обязательно все сделать в такой последовательности: сначала ввести данные, потом нажать enter, потом нажать Esc(окошко закроется), потом снова вызвать его большой кнопкой, ввести уже новые имя пользователя и пароль и снова нажать Enter. В консоли вы увидите распечатку что идет на одно нажатие Enter словно два вызова keyPressed. при этом первый вызов это предыдущий, а второй текущий...и т.д... они копятся...
Вот что вышло например когда я ввел в поля "j"/"j" и нажал Enter..вывелись не только те значения, что я ввел сейчас, но и 3 предыдущих..! словно они там в массиве копятся.

Dispatcher and Enter
keyPressedLogon t t

Dispatcher and Enter
keyPressedLogon r r

Dispatcher and Enter
keyPressedLogon h h

Dispatcher and Enter
keyPressedLogon j j

Причем это происходит только если вызывать FrmShortLogon с testPanel! если FrmShortLogon перезапускать отдельно такой ошибки не будет.
Такие повторы сильно мешают если данные рельно отправляются в PL/SQL процедуру аутентификации..она же ошибку генерит все таки...

PS.
Спасибо))
...
Рейтинг: 0 / 0
10.04.2007, 12:44:48
    #34449694
Кореец
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в работе с JTextFiled
сам код..

PanelLogon

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
 package  FormsTRC;

 import  javax.swing.JPanel;
 import  java.awt.GridBagLayout;
 import  java.awt.Dimension;
 import  java.awt.FlowLayout;
 import  java.awt.event.KeyAdapter;
 import  java.awt.event.KeyEvent;

 import  javax.swing.JLabel;
 import  javax.swing.JTextField;
 import  javax.swing.JPasswordField;
 import  javax.swing.JButton;

 import  org.eclipse.hyades.internal.execution.security.User;

 import  AppClass.GlobalObject;

 import  java.awt.Rectangle;
 import  java.awt.Point;

 public   class  PanelLogon  extends  JPanel{
	
	 private  JLabel jUsernameLabel =  null ;
	 private  JTextField jUsernameTextField =  null ;
	 private  JLabel jPasswordLabel =  null ;
	 private  JPasswordField jPasswordField =  null ;
	
	 public  PanelLogon() {
		// TODO Auto-generated constructor stub		
		 super ();		
		initialize();
		System.out.println("\nПроверка полей:\n"+"Username:"+jUsernameTextField.getText()+"\nPass:"+jPasswordField.getText());
	}

	/**
	 * This method initializes this
	 * 
	 */
	 private   void  initialize() {
		 try  {
             this .setLayout( null );  // Generated
			jPasswordLabel =  new  JLabel();
			jPasswordLabel.setText("Пароль");  // Generated
			jPasswordLabel.setBounds( new  Rectangle( 5 ,  30 ,  115 ,  20 ));  // Generated
			jPasswordLabel.setPreferredSize( new  Dimension( 115 ,  20 ));  // Generated
			jUsernameLabel =  new  JLabel();
			jUsernameLabel.setText("Имя пользователя");  // Generated
			jUsernameLabel.setBounds( new  Rectangle( 5 ,  5 ,  115 ,  20 ));  // Generated
			jUsernameLabel.setPreferredSize( new  Dimension( 115 ,  20 ));  // Generated
			
			 this .setPreferredSize( new  Dimension( 280 ,  54 ));  // Generated
			 this .setSize( new  Dimension( 280 ,  54 ));  // Generated
			 this .setLocation( new  Point( 5 ,  5 ));  // Generated
			 this .setLayout( null );  // Generated
			 this .add(jUsernameLabel,  null );  // Generated
			 this .add(getJUsernameTextField(),  null );  // Generated
			 this .add(jPasswordLabel,  null );  // Generated
			 this .add(getJPasswordField(),  null );  // Generated
				
		}
		 catch  (java.lang.Throwable e) {
			//  Do Something
		}
	}




	/**
	 * This method initializes jUsernameTextField	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	 private  JTextField getJUsernameTextField() {
		 if  (jUsernameTextField ==  null ) {
			 try  {
				System.out.println("Get Username into!");
				jUsernameTextField =  new  JTextField();
				jUsernameTextField.setPreferredSize( new  Dimension( 150 ,  20 ));  // Generated				
				jUsernameTextField.setSize( new  Dimension( 150 ,  20 ));  // Generated
				jUsernameTextField.setLocation( new  Point( 125 ,  5 ));  // Generated
				jUsernameTextField.addKeyListener( new  java.awt.event.KeyAdapter() {
					 public   void  keyPressed(java.awt.event.KeyEvent e) {
						 if  ( e.getKeyCode() == KeyEvent.VK_ENTER ){
							jPasswordField.requestFocus();	
						}						
					}
				});
			}  catch  (java.lang.Throwable e) {
				// TODO: Something
			}
		}
		 return  jUsernameTextField;
	}

	/**
	 * This method initializes jPasswordField	
	 * 	
	 * @return javax.swing.JPasswordField	
	 */
	 private  JPasswordField getJPasswordField() {
		 if  (jPasswordField ==  null ) {
			 try  {
				jPasswordField =  new  JPasswordField();
				jPasswordField.setPreferredSize( new  Dimension( 150 ,  20 ));  // Generated
				jPasswordField.setSize( new  Dimension( 150 ,  20 ));  // Generated
				jPasswordField.setLocation( new  Point( 125 ,  30 ));  // Generated
				jPasswordField.addKeyListener( new  java.awt.event.KeyAdapter() {
					 public   void  keyPressed(java.awt.event.KeyEvent e) {
						//keyPressedLogon(e);
					}
				});
			}  catch  (java.lang.Throwable e) {
				// TODO: Something
			}
		}
		 return  jPasswordField;
	}


	/**
	 * @param args
	 */
	 public   void  keyPressedLogon(KeyEvent e){
		 if  (e.getKeyCode()==KeyEvent.VK_ENTER){
			System.out.println("keyPressedLogon " + jUsernameTextField.getText()+" " + jPasswordField.getText()); // TODO Auto-generated Event stub keyPressed()
			//AppClass.User user=GlobalObject.getUser(jUsernameTextField.getText(), jPasswordField.getText(), null);			
			//user.logon();
		}
	}
	
	 public  String getUsername(){
		 return  jUsernameTextField.getText();
	}
	
	 public  String getPassword(){
		 return  jPasswordField.getText();
	}
	
	 public   static   void  main(String[] args) {
		// TODO Auto-generated method stub
		PanelLogon p= new  PanelLogon();

	}

}  //  @jve:decl-index=0:visual-constraint="10,10"

...
Рейтинг: 0 / 0
10.04.2007, 12:45:29
    #34449697
Кореец
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в работе с JTextFiled
FrmShortLogon
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
 package  FormsTRC;

 import  javax.swing.JPanel;
 import  java.awt.Frame;
 import  java.awt.BorderLayout;
 import  java.awt.KeyEventDispatcher;
 import  java.awt.KeyboardFocusManager;
 import  java.awt.Panel;
 import  java.awt.event.KeyEvent;

 import  javax.swing.JDialog;

 import  AppClass.GlobalObject;
 import  java.awt.Dimension;
 import  java.awt.Point;

 public   class  FrmShortLogon  extends  JDialog {

	 private   static   final   long  serialVersionUID = 1L;

	 private  JPanel jContentPane =  null ;
	
	 private  PanelLogon pl;//=new PanelLogon();

	/**
	 * @param args
	 */
	 public   static   void  main(String[] args) {
		// TODO Auto-generated method stub
		FrmShortLogon f= new  FrmShortLogon( null );
	}

	/**
	 * @param owner
	 */
	 public  FrmShortLogon(Frame owner) {
		 super (owner,"Вход пользователя",true);
		initialize();		
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	 private   void  initialize() {
		 this .setSize( 298 ,  91 );
		 this .setLocation( new  Point( 500 ,  500 ));  // Generated
		 this .setPreferredSize( new  Dimension( 280 ,  54 ));  // Generated
		//this.setContentPane(getJContentPane());
		pl= new  PanelLogon();
		 this .setContentPane(pl);
		KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher( new  KeyEventDispatcher(){
			 public   boolean  dispatchKeyEvent(KeyEvent ke){
				 if (ke.getID()==KeyEvent.KEY_PRESSED && ke.getKeyCode()==KeyEvent.VK_ENTER){
					System.out.println("\nDispatcher and Enter");
					pl.keyPressedLogon(ke);					
					//if ( GlobalObject.flgExitLogon==1 ) {
					//	dispose();
					//}
					 return  false;					
				} else   if (ke.getID()==KeyEvent.KEY_PRESSED && ke.getKeyCode()==KeyEvent.VK_ESCAPE){
					dispose();
				}
				//System.out.println("Dispatcher");
				 return  false;
			}
		});	
		 this .setVisible(true);
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	 private  JPanel getJContentPane() {
		 if  (jContentPane ==  null ) {
			jContentPane =  new  JPanel();
			jContentPane.setLayout( null );
			pl= new  PanelLogon();
			jContentPane.add(pl);
		}
		 return  jContentPane;
	}

}  //  @jve:decl-index=0:visual-constraint="10,10"

...
Рейтинг: 0 / 0
10.04.2007, 12:46:05
    #34449704
Кореец
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в работе с JTextFiled
testPanel

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
 package  tst;

 import  javax.swing.SwingUtilities;
 import  java.awt.BorderLayout;
 import  javax.swing.JPanel;
 import  javax.swing.JFrame;
 import  java.awt.Dimension;
 import  javax.swing.JButton;
 import  java.awt.Rectangle;

 public   class  testPanel  extends  JFrame {

	 private   static   final   long  serialVersionUID = 1L;

	 private  JPanel jContentPane =  null ;

	 private  JButton jButton =  null ;
	
	 private  FormsTRC.FrmShortLogon l;

	/**
	 * This method initializes jButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	 private  JButton getJButton() {
		 if  (jButton ==  null ) {
			 try  {
				jButton =  new  JButton();
				jButton.setBounds( new  Rectangle( 191 ,  104 ,  195 ,  67 ));  // Generated
				jButton.addMouseListener( new  java.awt.event.MouseAdapter() {
					 public   void  mouseClicked(java.awt.event.MouseEvent e) {						
							l= new  FormsTRC.FrmShortLogon( null );
						    System.out.println("\nnew ShortLogon <> "); // TODO Auto-generated Event stub mouseClicked()
					}
				});
			}  catch  (java.lang.Throwable e) {
				// TODO: Something
			}
		}
		 return  jButton;
	}

	/**
	 * @param args
	 */
	 public   static   void  main(String[] args) {
		// TODO Auto-generated method stub
		SwingUtilities.invokeLater( new  Runnable() {
			 public   void  run() {
				testPanel thisClass =  new  testPanel();
				thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				thisClass.setVisible(true);
			}
		});
	}

	/**
	 * This is the default constructor
	 */
	 public  testPanel() {
		 super ();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	 private   void  initialize() {
		 this .setSize( 652 ,  359 );
		 this .setContentPane(getJContentPane());
		 this .setTitle("JFrame");
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	 private  JPanel getJContentPane() {
		 if  (jContentPane ==  null ) {
			jContentPane =  new  JPanel();
			jContentPane.setLayout( null );
			jContentPane.add(getJButton(),  null );  // Generated
		}
		 return  jContentPane;
	}

}  //  @jve:decl-index=0:visual-constraint="10,10"

...
Рейтинг: 0 / 0
10.04.2007, 12:59:46
    #34449750
vas0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в работе с JTextFiled
Честно говоря в коде не разобрался, но такая обработка exception напрягает
Код: plaintext
1.
2.
3.
4.
     try  {
         ....
    }  catch  (java.lang.Throwable e) {
        // TODO: Something
    }

может быть у вас там что то нехорошее происходит?
...
Рейтинг: 0 / 0
10.04.2007, 13:17:15
    #34449795
Кореец
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в работе с JTextFiled
vas0Честно говоря в коде не разобрался, но такая обработка exception напрягает
Код: plaintext
1.
2.
3.
4.
     try  {
         ....
    }  catch  (java.lang.Throwable e) {
        // TODO: Something
    }

может быть у вас там что то нехорошее происходит?

поставил

Код: plaintext
1.
2.
3.
}  catch  (Exception e) {
				System.out.println("Вдруг ошибка создания : "+e);
}

вроде чисто. пересоздание диалога происходит без ошибок.
...
Рейтинг: 0 / 0
10.04.2007, 13:54:11
    #34449935
Leonidv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в работе с JTextFiled
Уверен, напишите код руками - ошибка исчезнет.
1. Надо не мышку обрабатывать, а ActionListner (или как-то так).
2. Конструктору формы входа передавайте не null, а this (первую форму).
3.Ctrl+Shift+F.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
		KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher( new  KeyEventDispatcher(){
			 public   boolean  dispatchKeyEvent(KeyEvent ke){
				 if (ke.getID()==KeyEvent.KEY_PRESSED && ke.getKeyCode()==KeyEvent.VK_ENTER){
					System.out.println("\nDispatcher and Enter");
					pl.keyPressedLogon(ke);					
					//if ( GlobalObject.flgExitLogon==1 ) {
					//	dispose();
					//}
					 return  false;					
				} else   if (ke.getID()==KeyEvent.KEY_PRESSED && ke.getKeyCode()==KeyEvent.VK_ESCAPE){
					dispose();
				}
				//System.out.println("Dispatcher");
				 return  false;
			}
		});	
Разберитесь с этим кодом, ошибка где-то тут. Например, почему всегда возвращается false? Это нормально?
http://java.sun.com/javase/6/docs/api/java/awt/KeyEventDispatcher.html
...
Рейтинг: 0 / 0
10.04.2007, 14:22:27
    #34450051
Кореец
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в работе с JTextFiled
LeonidvУверен, напишите код руками - ошибка исчезнет.
1. Надо не мышку обрабатывать, а ActionListner (или как-то так).
2. Конструктору формы входа передавайте не null, а this (первую форму).
3.Ctrl+Shift+F.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
		KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher( new  KeyEventDispatcher(){
			 public   boolean  dispatchKeyEvent(KeyEvent ke){
				 if (ke.getID()==KeyEvent.KEY_PRESSED && ke.getKeyCode()==KeyEvent.VK_ENTER){
					System.out.println("\nDispatcher and Enter");
					pl.keyPressedLogon(ke);					
					//if ( GlobalObject.flgExitLogon==1 ) {
					//	dispose();
					//}
					 return  false;					
				} else   if (ke.getID()==KeyEvent.KEY_PRESSED && ke.getKeyCode()==KeyEvent.VK_ESCAPE){
					dispose();
				}
				//System.out.println("Dispatcher");
				 return  false;
			}
		});	
Разберитесь с этим кодом, ошибка где-то тут. Например, почему всегда возвращается false? Это нормально?
http://java.sun.com/javase/6/docs/api/java/awt/KeyEventDispatcher.html

всегда false, чтобы не останавливать обработку keyPressed для других компонентов. false/true по идее влияет только на это...
...
Рейтинг: 0 / 0
10.04.2007, 14:26:14
    #34450065
Кореец
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в работе с JTextFiled
насчет this/null для конструктора формы - делал и так и так. Результата тот же, а разве это не положение относительно parent окна для диалога задает? Дело наверно в работе самих компонентов. Почему то они помнят свое предыдущее состояние и выбирают значения в них внесенные словно из очереди. Так словно память и не освобождается после dispose()
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите найти ошибку в работе с JTextFiled / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]