После установки фонового изображения для JLabel, как отобразить текст поверх изображения? - PullRequest
0 голосов
/ 18 октября 2019

Изображение отображается на JLabel, и текст отображается прямо к нему. Я хочу, чтобы изображение было фоном JLabel, а текст должен отображаться поверх него.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class TestGUI extends JFrame implements MouseMotionListener {
    JLabel l1;

    TestGUI() {
        l1 = new JLabel();
        getContentPane().setBackground(Color.GREEN);

        setLayout(null);
        l1.setBounds(50, 80, 600, 60);

        l1.setIcon(new ImageIcon("E:\\subjects\\JAVA\\Internet Images\\blue.jpg"));
        l1.setFont(new Font("Jokerman", 3, 20));
        addMouseMotionListener(this);
        add(l1);

        show();
        setSize(600, 500);
        setDefaultCloseOperation(3);
    }

    public void mouseMoved(MouseEvent me) {
        l1.setText("x=" + me.getX() + " y=" + me.getY());
        System.out.println("mouseMoved");
    }

    public void mouseDragged(MouseEvent me) {
        System.out.println("mouseDragged");
    }

    public static void main(String x[]) {
        new TestGUI();
    }
}

1 Ответ

1 голос
/ 18 октября 2019

Я хочу, чтобы изображение было фоном JLabel, а текст должен отображаться поверх него.

По умолчанию текст отображается справа от изображения.

Это можно изменить, поиграв со свойствами класса JLabel. Например:

label.setHorizontalTextPosition(JLabel.CENTER);
label.setVerticalTextPosition(JLabel.CENTER);

Прочтите API JLabel, чтобы узнать о других свойствах, которые могут быть полезны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...