Невидимое изображение Java SwingJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Невидимое изображение Java Swing

Сообщение Anonymous »

Контекст:
Я пытаюсь создать приложение с помощью Java Swing, однако при попытке добавить фон на страницу входа изображение не отображается. Он находится там и перемещает другие JComponents при добавлении макета в корневую JPanel страницы, он просто не отображает изображение. Я также пробовал JavaFX, но, похоже, у меня та же проблема.
Я также пытался выяснить, есть ли у кого-нибудь такая же проблема, но не смог найти ничего полезного. Потратив целый день на поиски решения, я решил задать вопрос здесь.
Информация о компьютере:
Это информация о моем компьютере, если в целом это проблема DE

Код: Выделить всё

                  -`                     mmt007@mmt007desktop
.o+`                    --------------------
`ooo/                    OS: Arch Linux x86_64
`+oooo:                   Host: B75M-D3P
`+oooooo:                  Kernel: Linux 6.17.6-arch1-1
-+oooooo+:                 Uptime: 21 mins
`/:-:++oooo+:                Packages: 1022 (pacman), 26 (flatpak)
`/++++/+++++++:               Shell: bash 5.3.3
`/++++++++++++++:              Display (WX942): 1440x900 in 19", 60 Hz [External]
`/+++ooooooooooooo/`            WM: Hyprland 0.51.1 (Wayland)
./ooosssso++osssssso+`           Theme: Adwaita-dark [GTK2/3/4]
.oossssso-````/ossssss+`          Icons: Adwaita [GTK2/3/4]
-osssssso.      :ssssssso.         Font: Noto Sans (12pt) [Qt], Adwaita Sans (11pt) [GTK2/3/4]
:osssssss/        osssso+++.        Cursor: default (24px)
/ossssssss/        +ssssooo/-        Terminal: kitty 0.43.1
`/ossssso+/:-        -:/+osssso+-      Terminal Font: NimbusMonoPS-Regular (11pt)
`+sso+:-`                 `.-/+oso:     CPU: Intel(R) Core(TM) i5-3570 (4) @ 3.80 GHz
`++:.                            `-/+/    GPU: Intel Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller @ 1.15 GHz [Integrated]
.`                                 `/    Memory: 3.73 GiB / 7.62 GiB (49%)
Swap: 0 B / 4.00 GiB (0%)
Disk (/): 82.46 GiB / 214.08 GiB (39%) - ext4
Locale: en_US.UTF-8
Код:
И вот код, который вызывает у меня проблемы:
Класс страницы входа:

Код: Выделить всё

public class LoginPage extends Page {
protected void init() {
root.setLayout(new FlowLayout());

JImageLabel background = new JImageLabel(new ImageIcon("assets/backgrounds/login_background.png"));
background.setSize(400,400);

background.setPreferredSize(new Dimension(800,100));

root.add(background);
root.setBackground(Color.BLACK);
}

}
Класс страницы:

Код: Выделить всё

public abstract class Page {
protected final JPanel root = new JPanel();

public Page() { init(); }

protected abstract void init();
}
Класс JImageLabel:

Код: Выделить всё

public class JImageLabel extends JLabel {
private ImageIcon image;

public JImageLabel(ImageIcon image)
{super(image);}
}
Класс окна:

Код: Выделить всё

public class Window extends JFrame {
private static final Window INSTANCE = new Window("Disbot");

private static final Dimension DEFAULT_WINDOW_SIZE = new Dimension(1280,720);
private static Page page = null;

private Window(String title) throws HeadlessException
{super(title);}

public static void init(){
INSTANCE.setDefaultCloseOperation(EXIT_ON_CLOSE);
INSTANCE.setSize(DEFAULT_WINDOW_SIZE);

INSTANCE.setVisible(true);
}

public static void setPage(Page new_page){
page = new_page;
INSTANCE.setContentPane(page.root);
INSTANCE.repaint();
}
}
Основной класс:

Код: Выделить всё

public class Main {
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
Window.init();
Window.setPage(new LoginPage());
});
}
}
Скриншоты:
Изображение
Изображение


Подробнее здесь: https://stackoverflow.com/questions/798 ... ible-image
Ответить

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

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

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

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

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