Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Как сфокусировать ?


Автор: Ofion 26.4.2013, 09:46
Подскажите пожалуйста как или хотя бы при помощи чего на Java можно сфокусировать и максимизировать окно ? То есть предположим есть окно "Безымянный - Блокнот", программа должна его сфокусировать и развернуть на весь экран... Вроде перерыл все что возможно ответа не нашел.. ))

Автор: LSD 26.4.2013, 10:54
http://docs.oracle.com/javase/6/docs/api/java/awt/Component.html#requestFocusInWindow(boolean)
http://docs.oracle.com/javase/6/docs/api/java/awt/Frame.html#setExtendedState(int)

Автор: Ofion 26.4.2013, 11:00
Цитата(LSD @ 26.4.2013,  10:54)
http://docs.oracle.com/javase/6/docs/api/java/awt/Component.html#requestFocusInWindow(boolean)
http://docs.oracle.com/javase/6/docs/api/java/awt/Frame.html#setExtendedState(int)

Насколько я понял это все для окна моей программы - а задача сфокусироваться на чужом окне, например  "Безымянный - Блокнот", и его же максимизировать... Если не так понял сорри, только учусь  smile 

Автор: LSD 26.4.2013, 11:04
Это уже надо пользоваться функциями ОС.

Автор: Ofion 26.4.2013, 11:10
А как именно ? Кроссплатформенность не важна, лишь бы наВинде работала..  Сейчас пытаюсь это все сделать с JNA- пока безрезультатно))

Автор: LSD 26.4.2013, 11:33
Цитата(Ofion @  26.4.2013,  12:10 Найти цитируемый пост)
Сейчас пытаюсь это все сделать с JNA- пока безрезультатно))

JNA это правильный путь.

Автор: Ofion 26.4.2013, 13:10
Уже готов сдаться)) Не найти как это реализовать... Вопрос актуален...

Автор: LSD 26.4.2013, 13:52
Вопроса-то никакого нет. "Не получается" это не вопрос, это констатация факта и в ответ можно только посочувствовать.
Ты не знаешь какую функцию WinAPI надо вызвать чтобы сделать что-то с окном? Не получается вызвать функцию WinAPI из JNA?

Автор: Ofion 26.4.2013, 14:45
Вроде разобрался))) Получилось так...

 
Код


import com.sun.jna.Native;  
import com.sun.jna.examples.win32.W32API.HWND;  
import com.sun.jna.win32.W32APIOptions;  
  
public class NewClass {  
  
    public interface User32 extends W32APIOptions {  
  
          User32 instance = (User32) Native.loadLibrary("user32", User32.class, DEFAULT_OPTIONS);  
          boolean ShowWindow(HWND hWnd, int nCmdShow);  
          boolean SetForegroundWindow(HWND hWnd);  
          HWND FindWindow(String winClass, String title);  
      
    }  
    public static void main(String[] args) {  
        User32 user32 = User32.instance;  
        HWND handle = user32.FindWindow(null, "Безымянный - Paint");  
        user32.ShowWindow(handle, 3);  
        user32.SetForegroundWindow(handle);  
    }  
}  






А можно ли как то чтобы программа находила не по точному имени окна  "Безымянный - Paint" а по приблизительному "Безымянный" или "Paint" или  как то по типу окон, если по типу то как его (тип) узнать ????

Автор: Ofion 29.4.2013, 09:05
Цитата(Ofion @  26.4.2013,  14:45 Найти цитируемый пост)
А можно ли как то чтобы программа находила не по точному имени окна  "Безымянный - Paint" а по приблизительному "Безымянный" или "Paint" или  как то по типу окон, если по типу то как его (тип) узнать ????


Неужели, никто не знает ?

Автор: LSD 29.4.2013, 10:45
http://msdn.microsoft.com/en-us/library/windows/desktop/ms633497(v=vs.85).aspx и ищешь окно с нужным заголовком.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)