Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
6 / 6 / 1
Регистрация: 05.03.2009
Сообщений: 88

Работа с AWT

25.05.2010, 19:40. Показов 2425. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
нужно нарисовать небольшой рисунок и при нажатии стрелок на клавиатуре этот рисуночек должен двигаться по форме ((((

рисуночек то я накидал... с основами рисования тоже разобралься... но как можно перехватить нажатия стрелок ? и какой тип приложения использовать Desktop или Applet ? я рисовал на новом окне (Desktop)...

кто что может подсказать ?
Миниатюры
Работа с AWT  
Вложения
Тип файла: rar AWT.rar (10.4 Кб, 36 просмотров)
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.05.2010, 19:40
Ответы с готовыми решениями:

Непонятная работа java.awt.List
Дело в том, что при выводе на консоль ArrayList() выравнивание столбцов работает верно. При добавлении тех же самых строк в java.awt.List,...

Работа с awt в java ME
Помогите пожалуйста, как использовать библиотеку java.awt в мобильных приложениях. Мне нужна BufferedImage. Кто поможет +. ...

Работа с графикой awt
Привет всем! Пишу игру "подкидной дурак", логику игры уже написал, всё работает в консоле, уже можно играть, но теперь нужно всё это дело...

11
6 / 6 / 1
Регистрация: 05.03.2009
Сообщений: 88
30.05.2010, 19:14  [ТС]
Ну хоть кто-нибудь знает как перехватывать нажатия кнопок ??? любых...
0
33 / 33 / 1
Регистрация: 26.03.2007
Сообщений: 82
31.05.2010, 03:01
Вот то что тебе надо.
А вот что получается.

Очень хорошо написано, без лишней воды и всё понятно.
Подробности можешь прочитать, поискав про пакет событий java.awt.event
1
6 / 6 / 1
Регистрация: 05.03.2009
Сообщений: 88
31.05.2010, 11:25  [ТС]
Мне же не ворон считать нужно... там нет ни одного перехватчика нажатия (((
0
33 / 33 / 1
Регистрация: 26.03.2007
Сообщений: 82
31.05.2010, 12:05
Там есть перехватчики нажатия. Ты невнимательно прочитал.
Папример вот что выполняется, если нажать на кнопку addCrow:

Java
1
2
3
4
5
6
7
//Добавляем listener для кнопки addCrow.
addCrow.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent e) {
    voron = voron+1;     //Добавляем одну ворону
     updateCrowCounter(); //Сообщаем аппликации, что количество ворон изменилось
  }
});
Добавлено через 2 минуты
Вот полное описание, правда на английском.

Добавлено через 11 минут
Тьфу ты блин, ты имел ввиду клавиши, а не кнопки!

Добавлено через 1 минуту
Вот поищи так.

Добавлено через 2 минуты
Конкретно вот этот метод тебе нужен.
1
6 / 6 / 1
Регистрация: 05.03.2009
Сообщений: 88
31.05.2010, 19:00  [ТС]
Вот что я с твоей помощью навалял...

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package keyinfo;
 
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
 
 
public class KeyInfo
{
 
  public static void main(String args[])
  {
    FrameWindow frame;
    
    frame =  new FrameWindow("Keyboard monitor");
    frame.init();
    frame.show();
  }
}
 
 
class FrameWindow extends Frame
  implements KeyListener, WindowListener
{
  int yHeight;
  Dimension wndDimension;
  
 
  public FrameWindow(String szTitle)
  {
    super(szTitle);
    setSize(400, 400);
    setBackground(Color.yellow);
    setForeground(Color.black);
  }
 
  public void init()
  {
    this.addKeyListener(this);
    this.addWindowListener(this);
  }
 
  public void keyPressed(KeyEvent e)
  { 
      Graphics g = getGraphics();
      int x1=55,y1=45,x2=155,y2=45; 
    /*for(int i=1;i<=6;i++)
    g.drawLine(55, y1=y1+25, 155, y2=y2+25);
    g.drawRect(45, 45, 120, 180);*/
      
    if(e.getKeyCode() == KeyEvent.VK_DOWN)
    {    //for(int i=1;i<=6;i++)
    //g.drawLine(x1++, y1=y1+25, x2++, y2=y2+25);
    x1=x1+5;
    y1+=5;
    x2=x2+5;
    y2+=5;     
    g.drawRect(x1, y1, x2, y2);
    paint(g);
    
    }
      
      if(e.getKeyCode() == KeyEvent.VK_UP)
    {    //for(int i=1;i<=6;i++)
    //g.drawLine(x1++, y1=y1+25, x2++, y2=y2+25);
    //g.drawRect(x1--, y1--, x2--, y2--);
    super.repaint();
    }
  }
 
 
  public void keyReleased(KeyEvent e)
  {
  }
 
 
  public void keyTyped(KeyEvent e)
  {
  }
 
  public void paint(Graphics g)
  {
    super.paint(g);
  }
  
  public void windowClosing(WindowEvent e)
  {
    setVisible(false);
    System.exit(0);
  }
  
  public void windowOpened(WindowEvent e) {}
  public void windowClosed(WindowEvent e) {}
  public void windowIconified(WindowEvent e) {}
  public void windowDeiconified(WindowEvent e) {}
  public void windowActivated(WindowEvent e) {}
  public void windowDeactivated(WindowEvent e) {}
}
но одна проблемка оно рисует прямоугольник только при нажатии кнопки DOWN, помогите сделать так чтоб при нажатии вниз оно двигалось.... тоисть я как то не пойму как сделать чтоб оно перерисовывало (((

Добавлено через 17 минут
KeyDown срабатывает только при первом нажатии (((
0
33 / 33 / 1
Регистрация: 26.03.2007
Сообщений: 82
01.06.2010, 15:48
Сейчас нет времени втыкать в код, опаздываю, уходить надо.

Во-первых, посмотри про updateUI();
во-вторых, посмотри про repaint();
в-третьих, может быть надо переопределить метод Component(Graphics g);
в-четвертых, попробуй просто упростить всё и рассмотреть локальный кусочек кода, поколдовать с ним.

P.S. А что, это наблюдается только с клавишей DOWN?

Добавлено через 2 минуты
Мож чё-нить типа того?
Java
1
2
3
4
5
6
7
8
9
10
11
12
    if(e.getKeyCode() == KeyEvent.VK_DOWN)
    {    //for(int i=1;i<=6;i++)
    //g.drawLine(x1++, y1=y1+25, x2++, y2=y2+25);
    x1=x1+5;
    y1+=5;
    x2=x2+5;
    y2+=5;     
    g.drawRect(x1, y1, x2, y2);
    paint(g);
    this.repaint();
    
    }
1
6 / 6 / 1
Регистрация: 05.03.2009
Сообщений: 88
01.06.2010, 16:31  [ТС]
когда нажимаю вниз то должно быть хоть какоето движение прямоугольника...

сделаю ВНИЗ - сразу получатся и все остальные )))
0
33 / 33 / 1
Регистрация: 26.03.2007
Сообщений: 82
02.06.2010, 01:20
Ну то есть с this.repaint() как я написал не канает?
1
6 / 6 / 1
Регистрация: 05.03.2009
Сообщений: 88
02.06.2010, 10:47  [ТС]
после вызова рипеинта вообще ничего не отрисовывает (((
0
33 / 33 / 1
Регистрация: 26.03.2007
Сообщений: 82
03.06.2010, 04:06
Ты неправильно слухачи объявил =)

Добавлено через 5 минут
Вот тут посмотри как написано
http://ru.wikibooks.org/wiki/Java/Первое_окно
А ещё вот примерчик
http://www.rtindex.ru/primery_... ample.html

Добавлено через 2 часа 45 минут
Короче, я тут запарился и вот тебе написал сам примерчик.
Я до этого сам с Listener-ами не сталкивался, поэтому теперь тебе спасибо, за то что вынудил ими заняться.
Вот что у меня получилось:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
 
public class App extends JFrame{
JButton butt;
 
public App(){   //Конструктор
    butt = new JButton ("Кнопочка");
    JPanel pan = new JPanel ();
    pan.add(butt);
    add(butt, BorderLayout.SOUTH);
    init();
}
 
public void init(){
    butt.addActionListener(new ActionListener(){
                    public void actionPerformed(ActionEvent e){
                        updateApp();}
                    });
 
}
void updateApp(){
this.setLocation(getX() + 10, getY() + 10);
}
 
public static void main(String[] args){
    App a = new App();
    
    a.setVisible(true);
    a.pack();
}
}
Добавлено через 2 минуты
У меня вот долго не выходило вызвать метод изменения положения окна, методом listener-а. Потом просто вынес это дело в метод updateApp() и всё волшебным образом заработало.
А как можно вызвать эту строчку не вынося в отдельный метод?
1
6 / 6 / 1
Регистрация: 05.03.2009
Сообщений: 88
05.06.2010, 08:43  [ТС]
я со Swing еще не сталкивался... но и на этом спасибо! предмет я уже этот сдал ))))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.06.2010, 08:43
Помогаю со студенческими работами здесь

jawa.awt.*
Не могу найти ничего для awt.slider не подскажите как с ним работать?..

Awt.robot
Всем привет, сейчас пришлось использовать класс java.awt.robot, столкнулся с проблемой, дело в том, что я хочу, робот был активен лишь для...

Альтернатива AWT
Прошу помочь в поиске ссылки на сайт автора (японца, кажется), который разработал альтернативную бесплатную библиотеку виджетов - почти...

Проблемки с AWT
Не знаю, попал ли я в нужный раздел. Есть одно AWT'шное окошечко. Сам я в AWT новичок, что не могу сказать про Java(в Java я, конечно...

java.awt.*;
Здравствуйте . пробую совершить простую задачу : вывести на экран наименьший прямоугольник , в котором содержатся 2 заданных . И всё бы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru