2016-11-27 4 views
0

Итак, у меня есть программа змей в java, отлично работает, однако в моем классе Frame я не могу изменить цвет фона моей области содержимого JFrame, я использую getContentPane().setBackground(Color.DARK_GRAY);, но он не работает , любая помощь ?Невозможно изменить цвет фона JFrame ContentPane

Вот мой Frame класс:

package mainpackage; 

import java.awt.Color; 
import java.awt.GridLayout; 

import javax.swing.JFrame; 

public class Frame extends JFrame { 

    private static final long serialVersionUID = 1L; 

    public Frame() { 

     getContentPane().setBackground(Color.BLACK); \\NOT WORKING !! 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setTitle("Snake by Sarp~"); 
     setResizable(false); 
     init(); 
    } 

    public void init() { 
     setLayout(new GridLayout(1, 1, 0, 0)); 


     Screen s = new Screen(); 
     add(s); 

     pack(); 

     setLocationRelativeTo(null); 
     setVisible(true); 
    } 

    public static void main(String[] args) { 
     new Frame(); 
    } 

} 

ответ

1
setLayout(new GridLayout(1, 1, 0, 0)); 

С выше менеджера компоновки, любой компонент (ы) вы добавляете к раме будет полностью покрывать область содержимого.

Screen s = new Screen(); 
add(s); 

Вы можете установить фон области содержимого, но затем добавить компонент в область содержимого. Таким образом, вы увидите цвет компонента Screen поверх области содержимого.

Установите цвет вашего объекта экрана, чтобы быть все, что вы хотите:

s.setBackground(Color.BLACK); 
+0

Он уже добавил, что в его 'инициализации()' метода –

+0

@YoungMillie, что моя точка зрения. Он добавляет компонент верхней части области содержимого. – camickr

+0

Хорошо, что покрыло цвет –