Java GUI программирование: настройка фона / фона - PullRequest
3 голосов
/ 31 августа 2011

Я только начинаю программировать с графическим интерфейсом, медленно учусь.

Однако у меня возникла проблема с битой.Я вообще не могу изменить цвет фона / фона в моем окне.

Однако, когда я добавляю метку через JLabel, а затем использую setFore / Back, они меняют цвета очень хорошо.Только не все окно.

Я думал, что .setForeground и .setBackground должны изменить цвет окна?

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

public class MyWindow {

    public static void main(String args[])
    {
         Runnable init = new Runnable()
         {
             public void run()
             {

                    JFrame myWindow = new JFrame("Hola!");
                    myWindow.setForeground(Color.YELLOW);
                    myWindow.setBackground(Color.YELLOW);
                    myWindow.setSize(400, 300);

                    myWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    myWindow.setLayout(null);

                    myWindow.setVisible(true);

             }

         };
         SwingUtilities.invokeLater(init);
    }


}

Ответы [ 2 ]

9 голосов
/ 31 августа 2011

Прежде всего, не использовать нулевую разметку . Пусть менеджер по расположению сделает свою работу Во-вторых, вам нужно установить фон панели содержимого экземпляра JFrame, как таковой

myWindow.getContentPane().setBackground(Color.YELLOW);

Смотри также:

3 голосов
/ 31 августа 2011

Вы не можете раскрасить рамку. Однако вы можете покрасить ContentPane внутри.

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

    public class MyWindow {

        public static void main(String args[])
        {
             Runnable init = new Runnable()
             {
                 public void run()
                 {

                        JFrame myWindow = new JFrame("Hola!");

    myWindow.getContentPane().setBackground(Color.YELLOW);

                        myWindow.setSize(400, 300);

                        myWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                        myWindow.setLayout(null);

                        myWindow.setVisible(true);

                 }

             };
             SwingUtilities.invokeLater(init);
        }  
    }

это должно решить твою проблему ...

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