|
Rotten ↓
|
 |
|
30 Ноябрь, 2009, 12:16:59
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Адекваты Карма: 9
Сообщений: 1911 Сила слова: 0.47
|
Я много наэксперементировался, в книжке автор примера толком не указал...Да и вообще меня волнует особенность данного объекта.
Кручу сначала к нему FocusListener - и при потере/гэйне фокуса - ноль на масу. Кручу Кей листенер - тоже, ничерта не хочет реагировать.
НО - если даю ItemListener, и при itemStateChanged - опа, - и "жизнь на марсе обнаруживается". Еще бі, чтобі не реагировать на изминения єлементов, это было бы совсем непонятно.
Но мне надо при редактируемому Комбобоксе(когда есть возможность печатать/изменять элементы) - реагировать на события нажиманий клавиш...
Я обнаружил в самом JComboBox, в принципе есть немало методо....в т.ч. и свой actionPerfomed....
Подскажите, каким можно способом прикрутить данный обработчик?....возможно нужно както связать его в свою очередь и через КейЛистенер?
|
|
|
|
|
Записан
|
When some kind of technology becomes a religion...
|
|
|
|
CTAPbIu_MABP ↓
|
 |
|
30 Ноябрь, 2009, 12:33:15 , спустя 16 минут 16 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
мавр
Группа: в ухо Карма: не нужна
Сообщений: 5184 Сила слова: 1.81
|
|
|
|
|
« Последнее редактирование: 30 Ноябрь, 2009, 12:33:15 от CTAPbIu_MABP »
|
Записан
|
java.lang.OutOfMemoryError
|
|
|
|
Rotten ↓
|
 |
|
30 Ноябрь, 2009, 12:41:32 , спустя 8 минут 17 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Адекваты Карма: 9
Сообщений: 1911 Сила слова: 0.47
|
CTAPbIu_MABP, я этот пример кстати применял уже на своем)...
Но в моем селекте на фокус чето не реагирует. гдето в книге вычитал, что мол нужно еще определять родительский компонент, в котором элемент формы владеет фокусом....
типа
KeyboardFocusManager m = KeyboardFocusManager. getCurrentKeyboardFocusManager();
Component o = m. getFocusOwner();
Window focused = m. getFocusedWindow();
Но даже если так, то где использовать результативные переменные - хер знает...
Но не в фокусе дело...Хоть мне и более важен KeyListener, но всеравно не могу понять почему мой комбо игнорит обработчика?
final JComboBox SearchCombo = new JComboBox();
Box vb = Box. createVerticalBox();
b. add(new JLabel("Find:"));
b. add(Box. createHorizontalStrut(80));
b. add(SearchCombo );
SearchCombo. setEditable(true);
class onKeyHitSearchCombo extends KeyAdapter
{
public void keyReleased (KeyEvent event )
{
System. out. println("released.");
}
}
SearchCombo. addKeyListener(new onKeyHitSearchCombo ());
...
фокус тоже проделывал, но та же история.
Я думаю, что там нужно вытворить какоето дополнительное шаманство для применений обработчиков когда комбо в режиме едитабл....
|
|
|
|
|
Записан
|
When some kind of technology becomes a religion...
|
|
|
|
CTAPbIu_MABP ↓
|
 |
|
30 Ноябрь, 2009, 12:59:32 , спустя 18 минут
|
НЕ ХУЕТА!
ХУЕТА!
|
мавр
Группа: в ухо Карма: не нужна
Сообщений: 5184 Сила слова: 1.81
|
|
|
|
|
Записан
|
java.lang.OutOfMemoryError
|
|
|
|
Rotten ↓
|
 |
|
30 Ноябрь, 2009, 01:06:15 , спустя 6 минут 43 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Адекваты Карма: 9
Сообщений: 1911 Сила слова: 0.47
|
ок, значит у меня гдето там еще ошибка завалялась....
меньше с тем...
Меня вот что интересует - когда коббобокс - едитабельный, он себя автоматически ведет как текстФилд, например? Тоесть ненужно дополнительно для бокса вызывать какихто методов или чтото в том роде, чтобы он смог применять все те же обработчики что и тот же филд, текстарея и другие?
Я например смотрю в доку...там есть для бокса какойто странный метод processKeyEvent (KeyEvent e), то он на табулятор регирует(так описано). Мне кажется это совсем не то...
|
|
|
|
|
Записан
|
When some kind of technology becomes a religion...
|
|
|
|
CTAPbIu_MABP ↓
|
 |
|
30 Ноябрь, 2009, 01:23:59 , спустя 17 минут 44 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
мавр
Группа: в ухо Карма: не нужна
Сообщений: 5184 Сила слова: 1.81
|
Rotten, зафигач сюда свой код и скажи что ы хочешь чтоб он делал
|
|
|
|
|
Записан
|
java.lang.OutOfMemoryError
|
|
|
|
Rotten ↓
|
 |
|
30 Ноябрь, 2009, 01:54:36 , спустя 30 минут 37 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Адекваты Карма: 9
Сообщений: 1911 Сила слова: 0.47
|
ок... будем делать, как говорит мой шеф - "в лоб")...
Итак, навожу код. код, касающийся верстки/компоновок вписивать не буду, тут он не нужен - т.к. тема не та).
final JComboBox SearchCombo = new JComboBox();
SearchCombo. setEditable(true);
final JButton OKButton = new JButton("OK");
class onKeyHitSearchCombo extends KeyAdapter
{
public void keyReleased (KeyEvent event )
{
try{
String s = (String)SearchCombo. getSelectedItem();
//System.out.println(s);
boolean enabled = (s. isEmpty() || s == null) ? false : true; // можно и по s.lenth == 0, думаю нету разницы
OKButton. setEnabled(enabled );
//System.out.println(enabled);
}
catch(NullPointerException e ){
OKButton. setEnabled(false);
}
}
}
SearchCombo. addKeyListener(new onKeyHitSearchCombo ());
думаю тут и комментариев не надо.... Хотя на всяк лишний скажу: когда я пишу в в боксе значение, мне надо чтобы , подобно, например Текстфилду КейЛистенер выслежывал состояния комбобокса. И когда поле пустое или зануленное - тогда нужно деактивировать кнопку "Ок", а в обратном случае - активировать...
Проблема: метод keyReleased данного листенера вообще не вызывается...
|
|
|
|
|
Записан
|
When some kind of technology becomes a religion...
|
|
|
|
phpdude ↓
|
 |
|
30 Ноябрь, 2009, 01:58:14 , спустя 3 минуты 38 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
я - ЭМО
Группа: в ухо Карма: 339
Сообщений: 19712 Сила слова: 1.72
|
Rotten, Итак, навожу код. код, касающийся верстки ты как ведьма говоришь ... НАВОЖУ ПОРЧУ ))))))
|
|
|
|
|
Записан
|
забанен. могу забанить других, пишите в личку BEER. Helping ugly people have sex since 1862.
|
|
|
|
CTAPbIu_MABP ↓
|
 |
|
30 Ноябрь, 2009, 02:17:05 , спустя 18 минут 51 секунду
|
НЕ ХУЕТА!
ХУЕТА!
|
мавр
Группа: в ухо Карма: не нужна
Сообщений: 5184 Сила слова: 1.81
|
package ua. kiev. mabp;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class FocusEventDemo extends JFrame {
final static String newline = "\n";
JTextArea display;
public FocusEventDemo (String name ) {
super(name );
}
public void addComponentsToPane (final Container pane ) {
final JComboBox searchCombo = new JComboBox();
searchCombo. setEditable(true);
final JButton okButton = new JButton("OK");
searchCombo. getEditor(). getEditorComponent(). addKeyListener(new KeyListener() {
public void keyTyped (KeyEvent e ) {
System. out. print("keyTyped");
}
public void keyPressed (KeyEvent e ) {
System. out. print("keyPressed");
}
public void keyReleased (KeyEvent e ) {
System. out. print("keyReleased");
try {
String s = (String) searchCombo. getSelectedItem();
boolean enabled = (! (s. isEmpty() || s == null));
okButton. setEnabled(enabled );
}
catch (NullPointerException npe ) {
okButton. setEnabled(false);
}
}
});
add (searchCombo );
add (okButton );
pane. setLayout(new GridBagLayout());
setPreferredSize (new Dimension(450, 450));
((JPanel) pane ). setBorder(BorderFactory. createEmptyBorder(20, 20, 20, 20));
}
public static void main (String[] args ) {
javax. swing. SwingUtilities. invokeLater(new Runnable() {
public void run () {
FocusEventDemo frame = new FocusEventDemo ("FocusEventDemo");
frame. setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE);
frame. addComponentsToPane(frame. getContentPane());
frame. pack();
frame. setVisible(true);
}
});
}
}
магия
|
|
|
|
|
Записан
|
java.lang.OutOfMemoryError
|
|
|
|
Rotten ↓
|
 |
|
30 Ноябрь, 2009, 02:17:52 , спустя 47 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Адекваты Карма: 9
Сообщений: 1911 Сила слова: 0.47
|
а че странного)))) так же....девелопинг без порчи и шаманства(не говоря о галлонах кофе или енержи дринков(для кого - что), курения травы для энтузиастов) - это уже не девелопинг, а безвкусное и халатное отбывание очереди хер знает зачем))....
|
|
|
|
|
Записан
|
When some kind of technology becomes a religion...
|
|
|
|
Rotten ↓
|
 |
|
30 Ноябрь, 2009, 02:25:53 , спустя 8 минут 1 секунду
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Адекваты Карма: 9
Сообщений: 1911 Сила слова: 0.47
|
CTAPbIu_MABP,
searchCombo. getEditor(). getEditorComponent(). addKeyListener(KeyListener k )
Во-во...я за это и спрашивал))... Я догадывлся что надо применить чтото дополнительное в этом случае...только что именно - под вопросом.
Мавр, ты какую книгу(книги) по джаве читал), если можно поинтересоваться? Я пока Хортсмана 1й том.
Довольно внятно и интерессно, но только по основам. 2я - больше для создания профессиональных проектов написана. Но я втыкнул в сожержание, и мне показалось что там напротив - слишком много воды, которая нужна для разработки каких то мало востребованных вещей. Пока что нашел интерессное там - так это работа с базами данных. пока на очереде.
.....Спасибо за просветление в магии)
|
|
|
|
|
Записан
|
When some kind of technology becomes a religion...
|
|
|
|
CTAPbIu_MABP ↓
|
 |
|
30 Ноябрь, 2009, 03:21:05 , спустя 55 минут 12 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
мавр
Группа: в ухо Карма: не нужна
Сообщений: 5184 Сила слова: 1.81
|
Во-во...я за это и спрашивал))
нет ты спрашивал про фокус, фокус получает searchCombo
Мавр, ты какую книгу(книги) по джаве читал)
букварь, вторую и синюю
я уже гдето советовал Thinking in Java и серия [Spring,Hibernate,...] in Action
|
|
|
|
|
Записан
|
java.lang.OutOfMemoryError
|
|
|
|
Rotten ↓
|
 |
|
30 Ноябрь, 2009, 03:31:46 , спустя 10 минут 41 секунду
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Адекваты Карма: 9
Сообщений: 1911 Сила слова: 0.47
|
нет ты спрашивал про фокус, фокус получает searchCombo
Вообщемто я писал вот это
Я думаю, что там нужно вытворить какоето дополнительное шаманство для применений обработчиков когда комбо в режиме едитабл
А касательно фокуса - я не имел ввиду конкретно его...Просто сказал что он тоже не реагирует...
|
|
|
|
|
Записан
|
When some kind of technology becomes a religion...
|
|
|
|
adw0rd ↓
|
 |
|
30 Ноябрь, 2009, 03:58:22 , спустя 26 минут 36 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
эдво
Группа: Санитары Карма: не нужна
Сообщений: 17221 Сила слова: 1.65
|
Мавр, ты какую книгу(книги) по джаве читал)
букварь, вторую и синюю
я уже гдето советовал Thinking in Java и серия [Spring,Hibernate,...] in Action
http://pyha.ru/forum/topic/1198.0
|
|
|
|
|
Записан
|
|
|
|
|