powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Не могу понять в чём дело....
12 сообщений из 12, страница 1 из 1
Не могу понять в чём дело....
    #34855318
Eliya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Яву я изучаю недавно. Возникла задача следующего плана: создать контейнер типа JFrame и разместить на нём компонент, унаследованный от JComponent . Этот производный компонент должен менять форму курсора при наведении на него, и реагировать на событие mousePressed , выводя сообщение "Mouse pressed on MyComponent" . Внешне компонент выглядит как чёрный прямоугольник. Я это сделал вот так:

Код: plaintext
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.
 import  java.awt.*;
 import  java.awt.event.*;
 import  javax.swing.*;

 class  MyComponent  extends  JComponent{
	
	String msg = "";  //
	MyComponent(){
	
		setSize( 100 ,  100 );
		addMouseListener( new  MouseAdapter(){
			 public   void  mousePressed(MouseEvent me){
				msg = "Mouse pressed on MyComponent";
				repaint();
			}
		});
		setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
		setVisible(true);
	}
	
	 public   void  paintComponent(Graphics g) {
		 super .paintComponent(g);
		g.fillRect( 0 ,  0 ,  100 ,  100 );
		g.drawString(msg,  500 ,  500 );
	}
}

 class  MyFrame  extends  JFrame{
	
	MyFrame(){
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		getContentPane().add( new  MyComponent());
		setSize( 800 ,  600 );
		setVisible(true);
	}
	
	 public   static   void  main(String[] args) {
                          new  MyFrame();
	}	
}
Но где-то я напартачил: форма курсора меняется везде и на событие mousePressed откликается и главное окно JFrame .
Если есть такой человек, который может помочь, я был бы ему очень признателен.
...
Рейтинг: 0 / 0
Не могу понять в чём дело....
    #34855321
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у вас компонент растянулся на всю форму
читайте про Layout
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Не могу понять в чём дело....
    #34855331
Eliya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Deady
у вас компонент растянулся на всю форму
читайте про Layout
Posted via ActualForum NNTP Server 1.4

Извините за грубость, а причём здесь это, ведь по умолчанию используется FlowLayout
...
Рейтинг: 0 / 0
Не могу понять в чём дело....
    #34855344
jusio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eliya Deady
у вас компонент растянулся на всю форму
читайте про Layout
Posted via ActualForum NNTP Server 1.4

Извините за грубость, а причём здесь это, ведь по умолчанию используется FlowLayout

Какой дебил вам это сказал? По дефолту у JFrame используется BorderLayout. У JPanel - FlowLayout.

http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/JFrame.html
...
Рейтинг: 0 / 0
Не могу понять в чём дело....
    #34855356
Eliya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
jusio Eliya Deady
у вас компонент растянулся на всю форму
читайте про Layout
Posted via ActualForum NNTP Server 1.4

Извините за грубость, а причём здесь это, ведь по умолчанию используется FlowLayout

Какой дебил вам это сказал? По дефолту у JFrame используется BorderLayout. У JPanel - FlowLayout.

http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/JFrame.html

Дебилов зовут П.Ноутон и Г.Шилдт :)
...
Рейтинг: 0 / 0
Не могу понять в чём дело....
    #34855358
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, если не ошибаюсь, setSize сработает только при отключенном менеджере компоновки, он вроде с setBounds() коррелирует.
с менеджером нужно использовать setPrefferedSize(), setMinimumSize(), setMaximumSize()
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Не могу понять в чём дело....
    #34855360
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Eliya" <nospam@sql.ru>;


Дебилов зовут П.Ноутон и Г.Шилдт :)



читайте лучше Хорстмана и Портянкина. этим можно доверять :)
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Не могу понять в чём дело....
    #34855365
Eliya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Deady
кстати, если не ошибаюсь, setSize сработает только при отключенном менеджере компоновки, он вроде с setBounds() коррелирует.
с менеджером нужно использовать setPrefferedSize(), setMinimumSize(), setMaximumSize()
Posted via ActualForum NNTP Server 1.4
Я понимаю, что прошу много, но не могли бы Вы показать конкретно что нужно сделать я уже с ума сошёл
...
Рейтинг: 0 / 0
Не могу понять в чём дело....
    #34855370
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
завтра. сегодня вечер, любимая женщина, пиво, кино :)
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Не могу понять в чём дело....
    #34855371
Eliya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Deady
завтра. сегодня вечер, любимая женщина, пиво, кино :)
Posted via ActualForum NNTP Server 1.4

Извините, а во сколько: просто я работаю 2/2
...
Рейтинг: 0 / 0
Не могу понять в чём дело....
    #34855417
jusio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JFrame выставить setLayout(null), потом MyComponent выставить setBounds(0,0,100,100)
...
Рейтинг: 0 / 0
Не могу понять в чём дело....
    #34855855
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
 public   class  MyFrame  extends  JFrame {

    MyFrame() {
        setDefaultCloseOperation( EXIT_ON_CLOSE );
        JPanel panel =  new  JPanel();
        getContentPane().add( panel );
        panel.add(  new  MyComponent() );
        setSize(  800 ,  600  );
        setVisible( true );
    }

     public   static   void  main( String[] args ) {
         new  MyFrame();
    }


}
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Не могу понять в чём дело....
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]