Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Простой апплет на AWT 
:(
    Опции темы
ci5
  Дата 24.11.2011, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 24.12.2008

Репутация: нет
Всего: нет



Прошу помощи с тем, чтобы довести до ума очень простой апплет. Сам никак не могу это доделать. Буду очень признателен. 
Код

import java.applet.Applet;
import java.awt.*;

public class Arrangements extends Applet {
    CheckboxGroup boxGroup;
    Checkbox rdbox1;
    Checkbox rdbox2;
    Checkbox rdbox3;
    Checkbox rdbox4;
    Button btn1;
    Button btn2;
    Button btn3;
    Button btn4;
    Panel panel;

    @Override
    public void init() {
        boxGroup = new CheckboxGroup();
        rdbox1 = new Checkbox("FlowLayout",boxGroup, true);
        rdbox2 = new Checkbox("GridLayout",boxGroup, false);
        rdbox3 = new Checkbox("BorderLayout",boxGroup, false);
        rdbox4 = new Checkbox("CardLayout",boxGroup, false);
        add(rdbox1);
        add(rdbox2);
        add(rdbox3);
        add(rdbox4);
        panel=new Panel();
        add(panel);
        btn1 = new Button("Button1");
        btn2 = new Button("Button2");
        btn3 = new Button("Button3");
        btn4 = new Button("Button4");
        panel.add(btn1);
        panel.add(btn2);
        panel.add(btn3);
        panel.add(btn4);
    }

    @Override
    public boolean action(Event evt, Object obj) {

    if(evt.target instanceof Checkbox)
    {
      if(evt.target.equals(rdbox1)) {
        showStatus("FlowLayout");
        panel.setLayout(new FlowLayout(FlowLayout.LEFT));
      }
      if(evt.target.equals(rdbox2)) {
        showStatus("GridLayout");
        panel.setLayout(new GridLayout(2,2,5,5));
      }      
      if(evt.target.equals(rdbox3)) {
        showStatus("BorderLayout");
        panel.setLayout(new BorderLayout());
      }      
      if(evt.target.equals(rdbox4)) {
        showStatus("CardLayout");
        panel.setLayout(new CardLayout());
      } 
      repaint();
      return true;
    }
    return false;
  }
  public void paint(Graphics g)
  {
    Dimension size = getSize();
    panel.setBounds(0, 100, size.width, size.height);
  }
}

Суть заключается в том, чтобы кинуть на апплет 4 radiobutton, панель(или контейнер) и 4 кнопки. Нужно продемонстрировать работу 4-х менеджеров компоновки по нажатию на radiobutton. кнопки ничего не исполняют, они просто лежат в самой панели и служат там как графическое представление работы менеджеров компоновки. 
Добавил в панель 4 кнопки, 4 radiobutton бросил на сам апплет и отлавливаю их нажатие. но метод repaint мне в этом не помогает, когда требуется перерисовать. Также с BorderLayout не получилось реализовать. 
Всё нужно реализовать только с использованием библиотеки AWT (ручками). 
Заранее благодарю.
PM MAIL   Вверх
Mirkes
Дата 11.12.2011, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 586
Регистрация: 18.8.2011
Где: Красноярск

Репутация: нет
Всего: 17



Если я правильно понял, то нужно демонстрировать разные layout. Не уверен, но по-моему он срабатывает только в момент занесения сомпонента в контейнер.
Наверное разумным решением будет при нажатии на радиобаттон создавать новую панель с нужным layout, старую панель удалять а новую вставлять. Должно получиться.


--------------------
Mirkes
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Апплеты | Следующая тема »


 




[ Время генерации скрипта: 0.0606 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.