Форум программистов
Реклама:
Гарантия безопасности сети с UTM-системой ИКС.
Защита ПД, межсетевой экран, контроль доступа, фильтрация трафика, система предотвращения вторжений.
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 14.05.2017, 10:19   #1
max29
Пользователь
 
Аватар для max29
 
Регистрация: 16.04.2016
Сообщений: 37
Репутация: 10
По умолчанию swing(JPanel) и создание собственного виджета.

Всем привет, в книге Сьерра К. Бейтс Б. на стр 394(http://imgdepo.com/id/10635548.jpg) описывается метод создания собственного виджета для рисования.
Я не пойму как его осуществить, "покажите/объясните" как надо, очень хочется понять.

Это пример с обычной кнопкой но я попробовал туда добавить JPanel и ничего не получилось.
Код:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
 
public class NewProject extends JPanel implements ActionListener {
    JButton button;
    JPanel panel;
   
    public static void main(String[] args) {
        NewProject gui = new NewProject();
        gui.go();
       
    }
    
    
    public void paintComponent(Graphics g){
        g.setColor(Color.orange);
        g.fillRect (20, 50,100,100); 
    }
    
        
        public void go(){
        JFrame frame = new JFrame();
        panel = new JPanel();
        button = new JButton("Click me");
        
        button.addActionListener(this);
        //тут должна быть аналогия button.addActionListener(this); но для -> panel. как это сделать?
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(button);
        frame.getContentPane().add(panel);
        frame.setSize(300,300);
        frame.setVisible(true);
    }
        
        
        
 
    @Override
    public void actionPerformed(ActionEvent e) {
        button.setText((2 + 2) + " " + "I've been cliced");
    }
 
   
    
}

Не пойму как можно реализовать это?
max29 вне форума   Ответить с цитированием
Старый 14.05.2017, 14:18   #2
New man
Участник клуба
 
Регистрация: 24.01.2011
Сообщений: 605
Репутация: 241
По умолчанию

А что именно должно получиться?
__________________
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума   Ответить с цитированием
Старый 14.05.2017, 14:42   #3
max29
Пользователь
 
Аватар для max29
 
Регистрация: 16.04.2016
Сообщений: 37
Репутация: 10
По умолчанию

На "экран" фрейма должен вывестись оранжевый круг!(По идее)
max29 вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание собственного компонента alex_mindal Компоненты Delphi 2 29.11.2016 16:14
На создание собственного метода Pavlgd Общие вопросы Delphi 5 05.05.2016 23:10
Создание виджета ilshat09 JavaScript, Ajax 5 08.04.2015 15:41
создание собственного компонента МаксимШ Компоненты Delphi 5 08.06.2010 14:11
Создание собственного компонента Леха207 Помощь студентам 1 03.07.2007 12:45




15:38.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru