2015-09-16 5 views
0

Я работаю над приложением штрих-кода, которое имеет в своем основном GUI панель с вкладками, содержащая множество панелей, где одна из этих панелей предназначена для кассир, проблема в том, что когда отображается панель кассира, мне нужно всегда устанавливать фокус на текстовое поле, где должен быть вставлен штрих-код. requestFocusInWindow() или requestFocus() не работает, так как я нахожусь в том же jframe и в одних и тех же jTabbedPane, но я выбирающих панелей внутри этой tabbedpane то, что мне нужно, когда я перехожу к конкретной панели, которая является «кассиром панель» всегда установить фокус на определенном текстовом поле спасибо.фокусировка на текстовом поле в панели, которая находится в панели с вкладками, которая содержит много панелей.

+0

возможно дубликат [Как установить фокус на текстовом поле в свинге?] (http://stackoverflow.com/questions/1425392/how-do-you-set-a-focus-on-textfield-in-swing) –

+0

Я пробовал это, но когда я выбираю другую панель, вернитесь к нужной панели который является кассовой панелью, нет никакого фокуса на textfeild, который мне нужен. – Hsein

+0

hmmm добавить 'addChangeListener' в вашу вкладку. Then when tab selected/change check if active panel is cashier.if панель cachier, тогда позвоните ' requestFocus() ' –

ответ

1
private void MainTabbedPaneStateChanged(javax.swing.event.ChangeEvent evt) { 

     if(CashierPanel.isShowing()){ 
      Barcode_txt.requestFocus(); 
     }  
    } 
+0

sry. да, это правильный способ. + 1 принять ваш ответ –

0

Это может также работать, при указании свойства barcodeText в то есть высота, ширина и т.д. установлена ​​также фокусируемого true в

barcodeText.setFocusable(true); 
Смежные вопросы