
cdc.ui.swing.SwingUtils Maven / Gradle / Ivy
package cdc.ui.swing;
import java.awt.Font;
import java.awt.Image;
import java.io.IOException;
import java.net.URL;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import javax.imageio.ImageIO;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import cdc.util.files.Resources;
public final class SwingUtils {
private static final Logger LOGGER = LogManager.getLogger(SwingUtils.class);
private static Image applicationImage = null;
private SwingUtils() {
}
public static void setPlainFont(JLabel c) {
c.setFont(c.getFont().deriveFont(Font.PLAIN));
}
public static Image getApplicationImage() {
if (applicationImage == null) {
final URL url = Resources.getResource("cdc/ui/images/cdc-32.png");
if (url != null) {
try {
applicationImage = ImageIO.read(url);
} catch (final IOException e) {
LOGGER.catching(e);
}
} else {
LOGGER.error("Failed to find the application image");
}
}
return applicationImage;
}
public static Icon loadIcon(String path) {
LOGGER.debug("loadIcon({})", path);
final URL url = Resources.getResource(path);
if (url != null) {
return new ImageIcon(url);
} else {
LOGGER.warn("loadIcon({}) FAILED", path);
return null;
}
}
public static void processInEDT(Runnable runnable) {
if (SwingUtilities.isEventDispatchThread()) {
runnable.run();
} else {
SwingUtilities.invokeLater(runnable::run);
}
}
public static void processInEDT(Consumer consumer,
T arg) {
if (SwingUtilities.isEventDispatchThread()) {
consumer.accept(arg);
} else {
SwingUtilities.invokeLater(() -> consumer.accept(arg));
}
}
public static void processInEDT(BiConsumer consumer,
T arg1,
U arg2) {
if (SwingUtilities.isEventDispatchThread()) {
consumer.accept(arg1, arg2);
} else {
SwingUtilities.invokeLater(() -> consumer.accept(arg1, arg2));
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy