Изображение иконы искаженного подносаJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Изображение иконы искаженного подноса

Сообщение Anonymous »

Итак, я делаю приложение Auto Clicker, которое работает в фоновом режиме с JnativeHook в подносе, которое может открыть приложение java.awt, когда нажимает значок, и вся эта часть работает при запуске с Vscode с запуском Java. Когда я упаковал проект с помощью MVN Clean Package, чтобы получить заштрихованную исполняемую банку, изображение значка для приложения выглядит странно. (Он работал нормально при запуске от VSCODE) Я также попробовал приложение EXE в целевой папке, но я получил те же результаты. Значок в pom.xml, так как он уже был определен в лоторе части файлов Java, но я не видел никаких изменений. Maven Project Picture < /p>
my tray.java -файл, где я обрабатываю лоток и устанавливаю изображение значка для приложения, которое отлично работает при запуске из основного файла: < /p>
package com.autoclicker;

import java.awt.*;
import java.awt.event.*;
import org.jnativehook.GlobalScreen;
import org.jnativehook.NativeHookException;

public class Tray {
private TrayIcon trayIcon;
private App app;
private SettingsManager settingsManager;

public Tray() {
setupTray();
app = new App();
settingsManager = new SettingsManager();
// Initialize global key listener using current settings
new KeyListener();
}

/**
* Sets up the system tray icon and its associated context menu.
* If system tray is not supported, this method does nothing.
* The system tray icon is set to the image located at
* src/main/res/img/icon.png.
* The context menu has one item: "Exit", which exits the application
* and unregisters the native hook.
*/
private void setupTray() {
if (!SystemTray.isSupported()) {
System.err.println("System tray is not supported.");
return;
}

SystemTray tray = SystemTray.getSystemTray();
Image image = Toolkit.getDefaultToolkit().getImage("src\\main\\res\\img\\icon.png");
trayIcon = new TrayIcon(image, "Auto Clicker");
trayIcon.setImageAutoSize(true);

trayIcon.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
// Left-click to open the settings window
if (e.getButton() == MouseEvent.BUTTON1) {
app.showSettingsWindow();
}
}
});

PopupMenu popup = new PopupMenu();
MenuItem exitItem = new MenuItem("Exit");
exitItem.addActionListener(e -> {
try {
GlobalScreen.unregisterNativeHook();
} catch (NativeHookException ex) {
ex.printStackTrace();
}
System.exit(0);
});
popup.add(exitItem);
trayIcon.setPopupMenu(popup);

try {
tray.add(trayIcon);
} catch (AWTException e) {
System.err.println("TrayIcon could not be added.");
e.printStackTrace();
}
}
}
< /code>
my pom.xml, где я установил значок для проекта (я не очень много знаю о pom.xml): < /p>

xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.autoclicker
auto-clicker
1.0-SNAPSHOT

auto-clicker

http://www.example.com


UTF-8
1.8
1.8





junit
junit
4.11
test



com.1stleg
jnativehook
2.1.0



com.google.code.gson
gson
2.12.1








maven-clean-plugin
3.1.0


maven-resources-plugin
3.0.2


maven-compiler-plugin
3.8.0


maven-surefire-plugin
2.22.1


maven-jar-plugin
3.0.2


maven-install-plugin
2.5.2


maven-deploy-plugin
2.8.2


maven-site-plugin
3.7.1


maven-project-info-reports-plugin
3.0.0







org.apache.maven.plugins
maven-shade-plugin
3.2.4


package

shade



true
shaded



com.autoclicker.Main









com.akathist.maven.plugins.launch4j
launch4j-maven-plugin
2.5.3


l4j-wrapper
package

launch4j




${project.build.directory}/${project.build.finalName}-shaded.jar
${project.build.directory}/${project.build.finalName}.exe
gui
.
src/main/res/img/icon.ico

1.8.0








< /code>
Основной файл просто запускает файл Tray.java, который запускает файл app.java при нажатии на системный лоток: < /p>
package com.autoclicker;

import javax.swing.SwingUtilities;

public class Main {
/**
* Main entry point of the application.
*
* This method creates a new instance of the Tray class, which sets up the
* system tray and the settings window.
*
* @param args Command line arguments (not used)
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new Tray());
}
}

Вот репо: https://github.com/jeromeydynamics/auto-clicker-app
минимальный воспроизводимый пример
import java.awt.*;
import java.awt.event.*;
import org.jnativehook.GlobalScreen;
import org.jnativehook.NativeHookException;

public class Tray {
public static void main(String[] args) {
SystemTray tray = SystemTray.getSystemTray();
Image image = Toolkit.getDefaultToolkit().getImage("src\\main\\res\\img\\icon.png");
TrayIcon trayIcon = new TrayIcon(image, "Auto Clicker");
trayIcon.setImageAutoSize(true);

PopupMenu popup = new PopupMenu();
MenuItem exitItem = new MenuItem("Exit");
exitItem.addActionListener(e -> {
try {
GlobalScreen.unregisterNativeHook();
} catch (NativeHookException ex) {
ex.printStackTrace();
}
System.exit(0);
});
popup.add(exitItem);
trayIcon.setPopupMenu(popup);

try {
tray.add(trayIcon);
} catch (AWTException e) {
System.err.println("TrayIcon could not be added.");
e.printStackTrace();
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/795 ... icon-image
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Изображение иконы искаженного подноса
    Anonymous » » в форуме JAVA
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • Qmenu для иконы подноса не показывает
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Получите левой кнопкой мыши по значке подноса (Python | Pyray)
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Приложение WPF, которое имеет только значок подноса
    Anonymous » » в форуме C#
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Не получаю полезную нагрузку в пакете от подноса уведомлений. Когда приложение убито
    Anonymous » » в форуме Android
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»