У меня проблема с интерфейсом, я создал класс и использовал два интерфейса: Key Listener и ActionListener, и я хотел использовать ActionListener в своем классе Timer таким образом>> Timer(10,this), Как я могу быть более В ключевом слове (this) указано, что я хочу, чтобы этот интерфейс ActionListener использовал это ключевое слово, когда я использовал два интерфейса для своего класса, возможно ли это вообще? если нет, то какова альтернатива????
как вы можете видеть в моем коде, я использовал KeyListener для перемещения моей первой метки влево и вправо, и она отлично работает, привязывая ее к кадру с помощью этой команды: this. addKeyListener (это); но для моей второй метки я попытался анимировать свою метку, используя класс таймера и используя эту команду, чтобы посвятить мой интерфейс прослушивателя действий таймеру: timer=new Timer(10,this); но это не работает. Думаю, причина в этом ключевом слове, и я хотел знать, к какому интерфейсу это относится??? и какое решение поможет моему таймеру сработать и переместить мою вторую метку???
public class MyFrame extends JFrame implements KeyListener,ActionListener{
JLabel label1=new JLabel();
JLabel label=new JLabel();
ImageIcon image=new ImageIcon("C:\\Users\\Fatta\\Desktop\\Images\\ball.png");
Timer timer;
int a=0;
int b=0;
int x=1;
int y=1;
int width=520;
int height=520;
MyFrame(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(width,height);
this.setLayout(null);
label.setBackground(Color.red);
label.setOpaque(true);
label.setBounds(350,400,130,30);
this.setLocationRelativeTo(null);
label1.setBounds(a, b, 120, 100);
label1.setIcon(image);
this.add(label1);
this.add(label);
timer=new Timer(10,this);
timer.start();
this.addKeyListener(this);
this.setVisible(true);
}
@Override
public void keyTyped(KeyEvent e) {
switch(e.getKeyChar()) {
case 'a': label.setLocation(label.getX()-20, label.getY());
break;
case 'd': label.setLocation(label.getX()+20, label.getY());
break;
}
}
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void actionPerformed(ActionEvent e) {
if (a>width-label1.getWidth()|| aheight-label1.getHeight()|| b
Подробнее здесь: https://stackoverflow.com/questions/790 ... ss-in-java
Проблема при использовании двух интерфейсов для класса в JAVA [закрыто] ⇐ JAVA
Программисты JAVA общаются здесь
1728988678
Anonymous
У меня проблема с интерфейсом, я создал класс и использовал два интерфейса: Key Listener и ActionListener, и я хотел использовать ActionListener в своем классе Timer таким образом>> Timer(10,this), Как я могу быть более В ключевом слове (this) указано, что я хочу, чтобы этот интерфейс ActionListener использовал это ключевое слово, когда я использовал два интерфейса для своего класса, возможно ли это вообще? если нет, то какова альтернатива????
как вы можете видеть в моем коде, я использовал KeyListener для перемещения моей первой метки влево и вправо, и она отлично работает, привязывая ее к кадру с помощью этой команды: this. addKeyListener (это); но для моей второй метки я попытался анимировать свою метку, используя класс таймера и используя эту команду, чтобы посвятить мой интерфейс прослушивателя действий таймеру: timer=new Timer(10,this); но это не работает. Думаю, причина в этом ключевом слове, и я хотел знать, к какому интерфейсу это относится??? и какое решение поможет моему таймеру сработать и переместить мою вторую метку???
public class MyFrame extends JFrame implements KeyListener,ActionListener{
JLabel label1=new JLabel();
JLabel label=new JLabel();
ImageIcon image=new ImageIcon("C:\\Users\\Fatta\\Desktop\\Images\\ball.png");
Timer timer;
int a=0;
int b=0;
int x=1;
int y=1;
int width=520;
int height=520;
MyFrame(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(width,height);
this.setLayout(null);
label.setBackground(Color.red);
label.setOpaque(true);
label.setBounds(350,400,130,30);
this.setLocationRelativeTo(null);
label1.setBounds(a, b, 120, 100);
label1.setIcon(image);
this.add(label1);
this.add(label);
timer=new Timer(10,this);
timer.start();
this.addKeyListener(this);
this.setVisible(true);
}
@Override
public void keyTyped(KeyEvent e) {
switch(e.getKeyChar()) {
case 'a': label.setLocation(label.getX()-20, label.getY());
break;
case 'd': label.setLocation(label.getX()+20, label.getY());
break;
}
}
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void actionPerformed(ActionEvent e) {
if (a>width-label1.getWidth()|| aheight-label1.getHeight()|| b
Подробнее здесь: [url]https://stackoverflow.com/questions/79087714/problem-in-using-two-interface-for-a-class-in-java[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия