Двигаем мышку через Java-код!
Да-да, Java умеет двигать курсор. Сделаем эффект "вибрации" — курсор дёргается туда-сюда:
Курсор будет "трястись" 1 секунду — выглядит как нотификация.
🔥 Подойдёт для визуальных эффектов, алертов или просто чтобы напугать друга.
👉 Java Ready | #практика
Да-да, Java умеет двигать курсор. Сделаем эффект "вибрации" — курсор дёргается туда-сюда:
Robot r = new Robot();
Point p = MouseInfo.getPointerInfo().getLocation();
for (int i = 0; i < 20; i++) {
r.mouseMove(p.x + 5, p.y);
Thread.sleep(50);
r.mouseMove(p.x - 5, p.y);
Thread.sleep(50);
}
r.mouseMove(p.x, p.y);
Курсор будет "трястись" 1 секунду — выглядит как нотификация.
🔥 Подойдёт для визуальных эффектов, алертов или просто чтобы напугать друга.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥6👍4
Нужно узнать, какую ноту или какую частоту содержит звук? Мы читаем фрагмент WAV, получаем PCM-данные и определяем доминирующую частоту через автокорреляцию.
В этой задаче:
• Читаем WAV;
• Применяем автокорреляцию;
• Вычисляем частоту.
Такой анализ частоты полезен при обработке голосовых команд, музыкальных сигналов и для систем распознавания тонов.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍6❤4
Например,
192.168.x.x — для домашней сети, а 10.x.x.x — для крупных корпоративных систем. CIDR (/24, /16, /8) — помогает точно задать размер подсети и количество хостов.На картинке — всё, что нужно знать про IP: диапазоны, маски, специальные адреса, публичные DNS и основы IPv6.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤7🔥7🤝2
Java может обращаться к системным утилитам Windows и забирать их вывод. Для Wi-Fi это особенно удобно, через команду
netsh wlan show networks можно получить список доступных сетей, а дальше обработать его в своём коде.В этом посте:
• Запускаем netsh;
• Читаем вывод команды;
• Достаём SSID сетей.
Такой приём полезен для сетевых утилит, диагностичестики, установщиков и любых приложений, которым нужно знать, какие Wi-Fi сети видит система.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍6❤5😁1
Хотите подгружать классы, без перезапуска приложения?
В Java можно написать свой
Базовый скелет кастомного загрузчика. Здесь
Переопределяем
Используем загрузчик для подгрузки плагина:
🔥 Дальше можно через интерфейсы или рефлексию вызвать методы плагина.
👉 Java Ready | #совет
В Java можно написать свой
ClassLoader и динамически загружать .class-файлы, например, как плагины.Базовый скелет кастомного загрузчика. Здесь
dir это папка, где лежат ваши плагины (.class файлы):public class PluginClassLoader extends ClassLoader {
private final Path dir;
public PluginClassLoader(Path dir, ClassLoader parent) {
super(parent);
this.dir = dir;
}}Переопределяем
findClass. Где defineClass() превращает сырые байты в настоящий Java-класс.@Override
protected Class<?> findClass(String name) throws ClassNotFoundException {
try {
Path file = dir.resolve(name.replace('.', '/') + ".class");
byte[] bytes = Files.readAllBytes(file);
return defineClass(name, bytes, 0, bytes.length);
} catch (IOException e) {
throw new ClassNotFoundException(name, e);
}}
Используем загрузчик для подгрузки плагина:
Path pluginsDir = Path.of("plugins");
PluginClassLoader loader =
new PluginClassLoader(pluginsDir, ClassLoader.getSystemClassLoader());
Class<?> pluginClass = loader.loadClass("com.example.Plugin");
Object plugin = pluginClass.getDeclaredConstructor().newInstance();Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍4🔥3
Каждый элемент автоматически занимает своё место, а дубликаты просто не добавляются. Коллекция сама следит за порядком.
TreeSet подходит не только для хранения уникальных данных, но и для задач, где важны интервалы, границы и быстрые навигационные операции.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤3👍3
Хочешь запустить внешнюю программу прямо из Java?
Иногда нужно вызвать системную утилиту, открыть файл, запустить скрипт для этого в Java есть
Самый простой запуск команды:
Запуск с аргументами:
Получение вывода программы:
🔥 Подходит для запуска CLI-утилит, тестов, скриптов, любых системных программ.
👉 Java Ready | #совет
Иногда нужно вызвать системную утилиту, открыть файл, запустить скрипт для этого в Java есть
Runtime и ProcessBuilder.Самый простой запуск команды:
Runtime.getRuntime().exec("notepad.exe");Запуск с аргументами:
new ProcessBuilder("ping", "google.com")
.inheritIO()
.start();Получение вывода программы:
Process p = Runtime.getRuntime().exec("java -version");
p.getInputStream().transferTo(System.out);Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍4❤3😁1
Часто нужно показать
PDF не как файл, а как набор картинок. Для этого можно на Java пройтись по страницам PDF и сохранить каждую в отдельный PNG.В этом посте:
• Загружаем документ;
• Используем PDFRenderer;
• Сохраняем каждую страницу.
Если работаете с
PDF эта задаче обязательно пригодится вам для отображения всего в удобных фото.Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥6❤3