Как мне заставить JLabel показывать поверх JButton?

У меня есть JLabel, который находится поверх JButton, но он не будет отображаться поверх. Когда код JButton закомментирован, отображается JLabel, что означает, что он есть, но находится внизу. Есть ли способ показать JLabel поверх JButton?

Любая помощь будет потрясающей. Спасибо!

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

    public class TestingLabelsOverButtons extends JFrame
    {
        public static void main (String []args)
        {   
            new TestingLabelsOverButtons();
        }

        public TestingLabelsOverButtons()
        {
            super();
            setSize(500,500);
            Container c = getContentPane();
            c.setLayout(null);
            c.setBackground(Color.white);

            JButton button = new JButton("Button");
            button.setBounds(0,0,500,500);
            c.add(button);

            JLabel label = new JLabel("Label");
            label.setBounds(0,0,500,500);
            c.add(label);

          setVisible(true);
        }
    }

РЕДАКТИРОВАТЬ:

Для пояснения, мне нужно это для моей игры, где при нажатии кнопки JLabel будет отображаться поверх кнопки для отображения "Гол" это добавлено. В моей игре JLabel будет меньше квадрата, чем JButton, поэтому JButton все еще должен быть видимым ».

 Andrew Thompson12 июн. 2013 г., 07:23
1) Возможно, для этого нужна всплывающая подсказка. 2)setLayout(null); Графические интерфейсы Java, возможно, должны работать на нескольких платформах, на разных разрешениях экрана и используя разные PLAF. Как таковые, они не способствуют точному размещению компонентов. Чтобы упорядочить компоненты для надежного графического интерфейса, вместо этого используйте менеджеры компоновки или их комбинации вместе с отступами макета и границы для пустого пространства.
 Richard Yang12 июн. 2013 г., 07:26
Для пояснения, мне нужно это для моей игры, где при нажатии кнопки JLabel будет отображаться поверх кнопки для отображения "Гол" это добавлено. В моей игре JLabel будет меньше квадрата, чем JButton, поэтому JButton все еще должен быть видимым.
 Hasan Iqbal12 июн. 2013 г., 07:28
почему бы и нет "Кнопка JButton = новая кнопка JButton ("Этикетка"); "?
 nachokk12 июн. 2013 г., 07:25
Ваш метод setBounds () оба указывают на одну и ту же позицию.
 MadProgrammer12 июн. 2013 г., 07:23
Зачем?" -JButton поддерживает как текст, так и значки, так чего вы хотите достичь?
 Richard Yang12 июн. 2013 г., 07:29
JButton уже отображает значок и фон. Всплывающее окно JLabel не охватывает всю область, занимаемую кнопкой, поэтому значок на кнопке JButton все еще должен быть виден.

Ответы на вопрос(1)

Решение Вопроса

едний добавленный компонент окрашивается первым.

Таким образом, вы можете достичь того, что вы хотите, делая:

c.add(button);
c.add(label);

Хотя, я согласен с комментариями. Что ты пытаешься сделать? Вероятно, есть лучшее решение. Практически никогда не стоит использовать setBounds () для позиционирования и размера компонента.

Мне это нужно для моей игры, где при нажатии кнопки JLabel будет отображаться поверх кнопки для отображения "Гол" это добавлено.

Если вы собираетесь заставить пользователя нажать кнопку, чтобы отобразить счет, то вам, вероятно, следует использоватьJOptionPane для отображения метки. Иначе как метка исчезнет? Заставлять пользователя нажимать на одну и ту же кнопку - не очень хороший интерфейс.

 Richard Yang12 июн. 2013 г., 07:29
У меня есть JPanel, который является сеткой из 16 кнопок J (4 на 4). Когда необходимо добавить оценку, в центре панели появится всплывающее окно, отображающее добавленную оценку. Всплывающее окно будет отображаться в верхней части 4 средних кнопок, поэтому я хочу, чтобы оно было видно поверх кнопок (но кнопки все равно должны быть видны). Я не могу сделать это, даже если метка добавлена после кнопок.
 camickr12 июн. 2013 г., 07:42
Прочитайте учебник по Swing наИспользование корневых панелей, Вы можете использовать Стеклянную панель для этого или, может быть, JLayeredPane лучше.
 Richard Yang12 июн. 2013 г., 08:01
Я неУ меня нет фона со стеклянными стеклами или чем-то еще, но я бы хотел сделать это как можно проще. Все эти компоненты являются частью jpanel, который расположен на jframe. Я хочу показать ярлык над кнопками на панели jpanel.
 Richard Yang12 июн. 2013 г., 07:31
Всплывающее окно создается при обновлении счета, а таймер используется для вызова другого метода удаления JLabel. Это скорее графическое обновление, чем панель параметров, где пользователь должен нажать "Хорошо".

Ваш ответ на вопрос