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

Фокус на панель

02.12.2018, 18:12. Показов 1107. Ответов 8

Студворк — интернет-сервис помощи студентам
После загрузки рисунка из файла и отрисовке его на панели, предназначенной для рисования, панель теряет фокус. То есть после загрузки рисунка я нажимаю на какую-нибудь загруженную фигуру, чтобы ее выделить, но вместо это там рисуется фигура, хотя должна была выделиться. Но если я сначала просто куда-нибудь нажму на панель, там отрисуется фигура, и уже потом нажму на загруженную фигуру, чтобы выделить ее, она выделится.
Как сделать так, чтобы после загрузке на панели сразу появлялся фокус.
Это не работает:
Java
1
2
3
4
5
6
7
8
9
10
load.addActionListener((e) ->{
            if(!storage.isEmpty())
                return;
            storage.load(Paint.this);
 
            while (storage.hasNext())
                storage.next().draw();
            paintPanel.requestFocusInWindow();
            paintPanel.setFocusable(true);
        });
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.12.2018, 18:12
Ответы с готовыми решениями:

Как сделать, чтобы панель имела фокус?
Помогите разобраться с: 1)Не работает и ничего не говорит такой код, что и где нужно ещё добавить, изменить, удалить?: ...

Панель задач и большая часть окон не реагируют ни на мышь, ни на сенсорную панель
Собственно, проблема описана в заголовке. Раньше такого не было, время от времени реагирует кстати, но большую часть времени не реагирует,...

Почему панель задач Windows 7 напоминает Dock панель Mac OS X
Эта "superbar" - то есть панель задач, известна своими функциональными возможностями переключения между окнами в новом исполнении. Это...

8
 Аватар для Kukstyler
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,307
02.12.2018, 19:52
stupid_man,

Java
1
if(!storage.isEmpty()) return;
???

может всё так и

Java
1
if(storage.isEmpty()) return;
0
1 / 1 / 0
Регистрация: 14.01.2018
Сообщений: 102
02.12.2018, 20:26  [ТС]
Цитата Сообщение от Kukstyler Посмотреть сообщение
может всё так и
нет, хранилище должно быть пустое, если не пустое, то это не подходит. Все равно даже без этой проверка, фокус с панели пропадает. Проблема не в этому условии
0
 Аватар для Kukstyler
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,307
02.12.2018, 20:36
stupid_man, попробуйте

Java
1
2
paintPanel.setAlwaysOnTop(true); 
paintPanel.setAlwaysOnTop(false);
0
1 / 1 / 0
Регистрация: 14.01.2018
Сообщений: 102
02.12.2018, 20:50  [ТС]
Цитата Сообщение от Kukstyler Посмотреть сообщение
попробуйте
Не помогло. paintPanel это JPanel

Добавлено через 6 минут
Влияет ли то, что функция load загружает данные из файла? Потому что в остальных случаях, где требуется фокус, setFocus(true); работает правильно
0
 Аватар для Kukstyler
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,307
02.12.2018, 21:03
stupid_man, что за компонент paintPanel ? Покажите декларацию.

Добавлено через 41 секунду
Цитата Сообщение от stupid_man Посмотреть сообщение
Влияет ли то, что функция load загружает данные из файла?
Tеоретически не должно.
0
1 / 1 / 0
Регистрация: 14.01.2018
Сообщений: 102
03.12.2018, 10:22  [ТС]
Цитата Сообщение от Kukstyler Посмотреть сообщение
что за компонент paintPanel ? Покажите декларацию.
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
  private JButton crtRect, crtLine, sizePlus, sizeMinus, delete, deleteAll;
    private JPanel mainPanel, paintPanel, tools;
    private JMenuBar menu;
    private JMenuItem save, load;
 
    public static final int weightPaint = 700;
    public static final int heightPaint = 700;
 
    public Paint(){
        super("FFFF");
        setSize(900,900);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
 
        // 3 панели, главная, для рисования и для инструментов
        mainPanel = new JPanel(new BorderLayout()); // главная, в которую входят paintPanel и tools
        paintPanel =new JPanel(null); // панель для рисования 
        tools = new JPanel(new GridLayout(6, 1, 20, 20)); // панель для кнопок
 
        paintPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
        paintPanel.setPreferredSize(new Dimension(700,700));
 
       load.addActionListener((e) ->{
            if(!storage.isEmpty())
                return;
            storage.load(Paint.this);
 
            while (storage.hasNext())
                storage.next().draw();
 
            paintPanel.requestFocusInWindow();
        });
 
 
      add(mainPanel);
        paintPanel.requestFocusInWindow();
        setVisible(true);
 
        pack();
0
 Аватар для Kukstyler
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,307
03.12.2018, 12:55
stupid_man, https://stackoverflow.com/ques... n-a-jpanel
0
1 / 1 / 0
Регистрация: 14.01.2018
Сообщений: 102
03.12.2018, 21:00  [ТС]
Цитата Сообщение от Kukstyler Посмотреть сообщение
Tеоретически не должно.
Я не знаю, что за магия произошла, но программа заработала сама
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.12.2018, 21:00
Помогаю со студенческими работами здесь

Как убрать панель пуска и панель с названием программы?
как убрать панель пуска и панель с названием проги хочу сделать типа windows 8 отметил на картинке то что хочу убрать

Вернуть панель быстрого запуска и языковую панель (как в XP)
Добрый вечер. Если я возвращаю панель быстрого запуска и языковую панель на панель задач, то после перезагрузки у меня пропадает панель...

Варочная панель Hansa BHC 66235030 ошибка F33, панель выдает ошибку после скачка напряжения
всех с праздником!!! ребята кто подскажет что за ошибка F33? панель у клиента, поеду забирать завтра вечером.

Как добавить панель на другую панель swing
Всем привет, у меня есть панель, хочу добавить на эту панель другую, только когда я ее добавляю она создается только сверху, менять могу...

Панель управления Joomla 2.5 не работает панель
Панель управления не работает и выход тоже не производится:( послу установки фока гостевая книга...хотя на сайте все работает((


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru