31.03.2014 / 16:44 | |
Ксакеп Модератор форума Сейчас: Offline
Регистрация: 20.06.2012
| UserSuperPupsik, надо прежде всего научиться пользоваться документацией. Пользуйся методом addKeyListener(KeyListener l). |
31.03.2014 / 16:53 | |
dzanis Пользователь Сейчас: Offline
Имя: Жаник Откуда: Rezekne Регистрация: 18.11.2010
| UserSuperPupsik,наследуй их всех от KeyLis ,или каждому реализуй интерфейс class C1 implements KeyListener ,потом сможешь просто добавить в слушатель |
31.03.2014 / 18:31 | |
UserSuperPupsik Пользователь Сейчас: Offline
Имя: UserSuperPupsik Регистрация: 27.09.2013
| Что за чудеса листенер работает только когда свернул, а потом развернул окно (frame)???
|
31.03.2014 / 18:34 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| UserSuperPupsik, focus поставь. setFocusable(true); requestFocus();
__________________
let live |
31.03.2014 / 18:42 | |
UserSuperPupsik Пользователь Сейчас: Offline
Имя: UserSuperPupsik Регистрация: 27.09.2013
| aNNiMON, Есть класс J2.java в нём class J2 extends JComponent{} public J2(){
J1.listener1 = new KeyLis();
this.addKeyListener(J1.listener1);
this.setFocusable(true);
this.requestFocus();
}
не получилось, может быть надо отдельно запустить метод J2?? Когда делаю переключение на этот класс с помощью frame.setContentPane(); Возникает нечто, листенер работает только после свернуть-развернуть; Изменено UserSuperPupsik (31.03 / 18:51) (всего 2 раза) |
31.03.2014 / 18:57 | |
UserSuperPupsik Пользователь Сейчас: Offline
Имя: UserSuperPupsik Регистрация: 27.09.2013
| aNNiMON, Вы когда-то написали всё за меня: код который переключает дисплеи на J2ME. Теперь мне нужно это же только с JComponent, т.е. переключаю дисплеи кнопками. Каждый дисплей(class J1, J2, J3 extends JComponent), очень хочется,чтобы был организован в J1.java, J2.java, ... , J3.java Самое смешное то что у меня сегодня это получилось на 1 минуту, а потом снова закосячил код! Изменено UserSuperPupsik (31.03 / 18:58) (всего 1 раз) |
31.03.2014 / 19:49 | |
UserSuperPupsik Пользователь Сейчас: Offline
Имя: UserSuperPupsik Регистрация: 27.09.2013
| aNNiMON, Помогите, пожалуйста |
31.03.2014 / 19:49 | |
Ксакеп Модератор форума Сейчас: Offline
Регистрация: 20.06.2012
| UserSuperPupsik, у тебя наверху какой-то странный пример. Почему ты обращаешься к J1.listener в своём классе J2? Притом создаешь новый экземпляр. oO
Изменено Ксакеп (31.03 / 19:51) (всего 1 раз) |
31.03.2014 / 20:10 | |
vl@volk Пользователь Сейчас: Offline
Имя: Владислав Откуда: Земля Регистрация: 26.12.2012
| public class J1 extends JComponent {
// тут код
}
public class J2 extends JComponent {
}
public class KeyList implements KeyListener {
// тут реализуешь методы KeyListener и пишешь нужный тебе код
Main m;
public KeyList(Main m) {
this.m = m; // для вызова метода next
}
//кажись так, непомню
@Override
public void keyPressed(KeyEvent e) {
if (e.keyCode == 'n') {
m.nextJComponent();
}
}
}
public class Main extends JFrame {
KeyList kl = new KeyList();
JComponent[] jc = new JComponent[] {
new J1().setKeyListener(kl),
new J2().setKeyListener(kl)
}
int jIndex = 0;
void nextJComponent() {
jIndex++;
if (jIndex >= jc.length) jIndex = 0;
setContentPane(jc[jIndex]);
}
}
Вызываешь метод nextJComponent() и поставится следующий компонент. например сработала кнопка n значит надо вызывать Main.next(); __________________
знает толк |
31.03.2014 / 22:33 | |
UserSuperPupsik Пользователь Сейчас: Offline
Имя: UserSuperPupsik Регистрация: 27.09.2013
| vl@volk,извините, никак не получается! Может кто-нибудь поделиться готовым проектом, так бы всё встало на свои места. Нужно: один листенер на 3 класса J1.java, J2.java, .... ,J3.java. Все классы расширены до JComponent. Нужно: нажал кнопку - включился J1.java (т.е. J1.paintComponent()); нажал кнопку 2 раз - включился J2.java (т.е. J2.paintComponent()); нажал кнопку 3 раз - включился J3.java (т.е. J2.paintComponent()); Этот листенер меняет экраны!!! Пожалуйтса, помогите, очень нужно!!! Изменено UserSuperPupsik (31.03 / 22:33) (всего 1 раз) |