Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > установка цвета формы


Автор: susanin 22.5.2008, 00:49
не пойму в чем косяк.... создал новое пустое окно JFrame frame = new JFrame();... хотел изменить цвет фона.. пишу frame.setBackground(Color.RED); но цвет изменяется только при открытии окна, а потом исчезает... в чем проблема?

Автор: Samotnik 22.5.2008, 00:56
весь код пажалста ! 

Автор: susanin 22.5.2008, 00:57
Код

JFrame baseFrame = new JFrame("Noname");
    baseFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    baseFrame.setSize(300, 300);
    baseFrame.setLocation(300, 500);
    baseFrame.setBackground(Color.red);
    baseFrame.setVisible(true);

Автор: Samotnik 22.5.2008, 01:13
Код

public class MainCl extends JFrame{
    public static void main(String[] args)
{
JFrame f = new JFrame("hello");
Container fc = f.getContentPane();
f.setSize(200, 300);
f.setLocation(100, 100);
fc.setBackground(Color.green);
fc.setForeground(Color.pink);
f.setVisible(true);

}                                         }

Автор: susanin 22.5.2008, 01:17
не понял...так а у меня то в чем ошибка???у меня то же самое все написано... только в main мой код содержится...

Автор: Samotnik 22.5.2008, 01:18
Цитата(susanin @  22.5.2008,  01:17 Найти цитируемый пост)
у меня то же самое все написано.

 smile 
Читай внимательно код !!!
Чему ты задаеш setBackground  ????
Ты его фрэйму задаеш !    А нужно контейнеру  smile 

Автор: susanin 22.5.2008, 01:27
а контейнер может быть только Container или панель тоже может быть контейнером? просто читаю в книге ... там нет контейнеров... а цвет меняется..

Автор: Samotnik 22.5.2008, 01:33
ну можно так 
Код

JPanel fc = (JPanel) f.getContentPane();


Добавлено через 26 секунд
выложи полный код из книги ! 

Автор: susanin 22.5.2008, 01:52
Код

public class ButtonTest
{
   public static void main(String[] args)
      {
           ButtonFrame frame = new ButtonFrame();
           frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
           frame.setVisible(true);
      }
}

class ButtonFrame extends JFrame
{ 
      public ButtonFrame()
         {
                   setTitle("ButtonTest");
                   setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);

                   ButtonPanel panel = new ButtonPanel();
                   add(panel);
          }
   public static final int DEFAULT_WIDTH=300;
   public static final int DEFAULT_HEIGHT=300;
}

class ButtonPanel extends JPanel
{
       public ButtonPanel()
          {
               JButton yellowButton = new JButton("Y);
               add(yellowButton);
             
               ColorAction yellowAction = new ColorAction(Color.YELLOW);

               yellowButton.addActionListener(yellowAction);
           }
      private class ColorAction implements ActionListener
          {  
                 public ColorAction(Color c)
                    {
                          background = c;
                    }
                 public void actionPerformed(ActionEvent event)
                    {
                         setBackground(background);
                     }
             private Color background;
          }
}

Автор: skif18 27.5.2008, 15:55
susanin, и где ты в примере видел чтоб фрейму задавался фон?

Автор: Старовъръ 27.5.2008, 16:36
Цитата

Ты его фрэйму задаеш !    А нужно контейнеру 
Ну не обязательно. Можно и фрейму, но тогда нужно сделать панель прозрачной. Правда это не к чему smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)