Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2010, 21:06   #1
Sasha9132
 
Аватар для Sasha9132
 
Регистрация: 16.11.2010
Сообщений: 7
По умолчанию проблема с KeyListener

Всем привет.
Вот есть кусок кода:

Код:
package Main;

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class CreateWin extends JFrame implements KeyListener{
	private static final long serialVersionUID = 1L;

	JFrame jfrm = new JFrame();
	JLabel jlab = new JLabel("Hellow");
	
	public CreateWin(){
		jfrm.setSize(800, 600);
		jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		jfrm.addKeyListener(this);
		
		jfrm.setVisible(true);
		
	}

	public void keyPressed(KeyEvent e) {
		jfrm.add(jlab);
		repaint();
	}
}

вот собственно метод main:

import javax.swing.SwingUtilities;

public class Start {

	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable(){
			public void run(){
				new CreateWin();
			}
		});

	}

}
Может кто знает как сделать так, что бы при нажатии пробела выводилась метка jlab.
Лишь тот достоин жизни и свободы, кто каждый день за них идет на бой... И. В. Гете

Последний раз редактировалось alexinspir; 22.11.2010 в 14:55.
Sasha9132 вне форума Ответить с цитированием
Старый 22.11.2010, 02:48   #2
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Предлагаю создать jlab и сделать его невидимым, потом при нажатии пробела сделать его видимым. Вот твой код, чуть-чуть переделан:
Код:
class CreateWin extends JFrame implements KeyListener{
	private static final long serialVersionUID = 1L;

	JFrame jfrm = new JFrame();
	JLabel jlab = new JLabel("Hellow");

	public CreateWin(){
		jfrm.setSize(800, 600);
		jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		jfrm.addKeyListener(this);
		
		jlab.setVisible(false); //скрываем метку
		jfrm.add(jlab);

		jfrm.setVisible(true);
	}

	@Override
	public void keyPressed(KeyEvent key) {
		if(key.getKeyCode() == KeyEvent.VK_SPACE) //если клавиша "пробел" показываем метку
			jlab.setVisible(true);
	}

	@Override
	public void keyReleased(KeyEvent key) {	
	}

	@Override
	public void keyTyped(KeyEvent key) {	
	}
}
profi вне форума Ответить с цитированием
Старый 22.11.2010, 21:43   #3
Sasha9132
 
Аватар для Sasha9132
 
Регистрация: 16.11.2010
Сообщений: 7
По умолчанию

Спс за код он в действительности довольно хорошо работает, но как быть когда ссылок на фрейме 300 штук?
Лишь тот достоин жизни и свободы, кто каждый день за них идет на бой... И. В. Гете
Sasha9132 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37