Вниз  Java-программирование (1-ые посты)
- 31.03.2014 / 16:44
Ксакеп
  Модератор форума

Ксакеп 
Сейчас: Offline
UserSuperPupsik, надо прежде всего научиться пользоваться документацией. Пользуйся методом addKeyListener(KeyListener l).
- 31.03.2014 / 16:53
dzanis
  Пользователь

dzanis 
Сейчас: Offline
UserSuperPupsik,наследуй их всех от KeyLis ,или каждому реализуй интерфейс class C1 implements KeyListener ,потом сможешь просто добавить в слушатель
  1. addKeyListener(с0[i]);

- 31.03.2014 / 18:31
UserSuperPupsik
  Пользователь

UserSuperPupsik 
Сейчас: Offline
Что за чудеса листенер работает только когда свернул, а потом развернул окно (frame)???
- 31.03.2014 / 18:34
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
UserSuperPupsik, focus поставь.
setFocusable(true);
requestFocus();
__________________
 let live
- 31.03.2014 / 18:42
UserSuperPupsik
  Пользователь

UserSuperPupsik 
Сейчас: Offline
aNNiMON,
Есть класс J2.java в нём class J2 extends JComponent{}
  1. public J2(){
  2.  
  3.       J1.listener1 = new KeyLis();
  4.       this.addKeyListener(J1.listener1);
  5.       this.setFocusable(true);
  6.       this.requestFocus();
  7.  
  8.  
  9.   }

не получилось, может быть надо отдельно запустить метод J2??

Когда делаю переключение на этот класс с помощью frame.setContentPane();
Возникает нечто, листенер работает только после свернуть-развернуть;

Изменено UserSuperPupsik (31.03 / 18:51) (всего 2 раза)
- 31.03.2014 / 18:57
UserSuperPupsik
  Пользователь

UserSuperPupsik 
Сейчас: Offline
aNNiMON, Вы когда-то написали всё за меня: код который переключает дисплеи на J2ME.
Теперь мне нужно это же только с JComponent, т.е. переключаю дисплеи кнопками.
Каждый дисплей(class J1, J2, J3 extends JComponent), очень хочется,чтобы был организован в J1.java, J2.java, ... , J3.java
Самое смешное то что у меня сегодня это получилось на 1 минуту, а потом снова закосячил код! :hack:

Изменено UserSuperPupsik (31.03 / 18:58) (всего 1 раз)
- 31.03.2014 / 19:49
UserSuperPupsik
  Пользователь

UserSuperPupsik 
Сейчас: Offline
aNNiMON, Помогите, пожалуйста :hack:
- 31.03.2014 / 19:49
Ксакеп
  Модератор форума

Ксакеп 
Сейчас: Offline
UserSuperPupsik, у тебя наверху какой-то странный пример. Почему ты обращаешься к J1.listener в своём классе J2? Притом создаешь новый экземпляр. oO

Изменено Ксакеп (31.03 / 19:51) (всего 1 раз)
- 31.03.2014 / 20:10
vl@volk
  Пользователь

vl@volk 
Сейчас: Offline
  1. public class J1 extends JComponent {
  2. // тут код
  3. }
  4.  
  5. public class J2 extends JComponent {
  6. }
  7.  
  8. public class KeyList implements KeyListener {
  9. // тут реализуешь методы KeyListener и пишешь нужный тебе код
  10.     Main m;
  11.  
  12.     public KeyList(Main m) {
  13.         this.m = m; // для вызова метода next
  14.     }
  15. //кажись так, непомню
  16.     @Override
  17.     public void keyPressed(KeyEvent e) {
  18.         if (e.keyCode == 'n') {
  19.             m.nextJComponent();
  20.         }
  21.     }
  22. }
  23.  
  24. public class Main extends JFrame {
  25.  
  26.     KeyList kl = new KeyList();
  27.     JComponent[] jc = new JComponent[] {
  28.         new J1().setKeyListener(kl),
  29.         new J2().setKeyListener(kl)
  30.     }
  31.  
  32.     int jIndex = 0;
  33.  
  34.     void nextJComponent() {
  35.         jIndex++;
  36.         if (jIndex >= jc.length) jIndex = 0;
  37.         setContentPane(jc[jIndex]);
  38.     }
  39.  
  40. }
Вызываешь метод nextJComponent() и поставится следующий компонент. например сработала кнопка n значит надо вызывать Main.next();
__________________
 знает толк
- 31.03.2014 / 22:33
UserSuperPupsik
  Пользователь

UserSuperPupsik 
Сейчас: Offline
vl@volk,извините, никак не получается!
Может кто-нибудь поделиться готовым проектом, так бы всё встало на свои места.
Нужно: один листенер на 3 класса J1.java, J2.java, .... ,J3.java. Все классы расширены до JComponent.
Нужно: нажал кнопку - включился J1.java (т.е. J1.paintComponent());
           нажал кнопку 2 раз - включился J2.java (т.е. J2.paintComponent());
           нажал кнопку 3 раз - включился J3.java (т.е. J2.paintComponent());
Этот листенер меняет экраны!!! Пожалуйтса, помогите, очень нужно!!! :stena:

Изменено UserSuperPupsik (31.03 / 22:33) (всего 1 раз)
Наверх  Всего сообщений: 16875
Фильтровать сообщения
Поиск по теме
Файлы топика (794)