2009-07-04 2 views

ответ

55

Извлеките область содержимого для рамки и используйте метод setBackground(), унаследованный от Component, чтобы изменить цвет.

Пример:

myJFrame.getContentPane().setBackground(desiredColor); 
2

Вы можете использовать контейнер таким образом:

Container c = JFrame.getContentPane(); 
c.setBackground(Color.red); 

Вы должны, конечно, импорт java.awt.Color для константы цвета красный.

28

Чтобы установить цвет фона для JFrame:

getContentPane().setBackground(Color.YELLOW); //Whatever color 
2

Вот еще один метод:

private void RenkMouseClicked(java.awt.event.MouseEvent evt) { 
    renk = JColorChooser.showDialog(null, "Select the background color", 
      renk); 
    Container a = this.getContentPane(); 
    a.setBackground(renk); 
} 

Я использую Netbeans IDE. Для меня JFrame.getContentPane() не запускался. Я использовал эквивалент класса JFrame.getContentPane()this.getContentPane.

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

public class MySimpleLayout extends JFrame { 

     private Container c; 
     public MySimpleLayout(String str) { 
      super(str); 
      c=getContentPane(); 
      c.setLayout(null); 
      c.setBackground(Color.WHITE); 
     } 
} 
+0

ничего нового по сравнению со старыми ответами, есть ;-) Плюс пар без номеров: а) не распространяется, если вы можете достичь требование без б) не держать член псевдонимов с) не обойтись без LayoutManager – kleopatra

+0

@ kleopatra благодаря ответу. это только для новичков ... –

-5

Вероятно, самый простой метод заключается в следующем:

super.setBackground(Color.CYAN); 

Вы должны удлинить JFrame в классе, прежде чем делать это!

+0

это либо неправильно, либо дублируется, в зависимости от того, где вы хотите вызвать метод, на кадре непосредственно или на его контентной панели – kleopatra

+0

@kleopatra Если это помещено в конструктор, это сработает ... –

+1

это не только то, что не указано в ответе, который вы дали, а повторение того, что ответили выше. –

-4
frame.getContentPane().setBackground(Color.white); 
+2

ничего нового по сравнению с более ранними ответами, есть ;-) – kleopatra

0

вы можете переопределить метод рисования в JFrame, а затем заполнить, что ваш любимый цвет, как это:

@Override 
public void paint(Graphics g) { 
    g.setColor(Color.red); 
    g.fillRect(0, 0, this.getWidth(), this.getHeight()); 
} 
3

Здравствуйте Там я сделал та же проблема, и после многих попыток я обнаружил, что проблема что вам нужен графический объект , чтобы иметь возможность рисовать, рисовать (setBackgroundColor).

Мой код обычно выглядит следующим образом:

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


public class DrawGraphics extends JFrame{ 

    public DrawGraphics(String title) throws HeadlessException { 
     super(title); 
     InitialElements(); 
    } 

    private void InitialElements(){ 
     setSize(300, 250); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setVisible(true); 
     // This one does not work 
     // getContentPane().setBackground(new Color(70, 80, 70)); 

    } 

    public void paint(Graphics draw){ 
     //Here you can perform any drawing like an oval... 
     draw.fillOval(40, 40, 60, 50); 

     getContentPane().setBackground(new Color(70,80,70)); 
    } 
} 

Недостающая часть на почти всех других ответов, где разместить код. Тогда теперь вы знаете, что это идет в краской (Графика G)

8

с помощью:

setBackground(Color.red); 

не работает должным образом.

использование

Container c = JFrame.getContentPane(); 

c.setBackground(Color.red); 

или

myJFrame.getContentPane().setBackground(Color.red); 
+3

Зачем отвечать, если уже есть тот же ответ, сделанный другими пользователями? –

+0

его первое утверждение имеет смысл, т. Е. SetBackGround не работает должным образом. – crackerplace

+1

Он мог отредактировать правильный ответ для этой маленькой строки. – Argento

-1

Создать JLabel, изменить его размер так, чтобы она закрывала Ваши JFrame. Щелкните правой кнопкой мыши значок JLabel, найдите значок и нажмите кнопку (...). Выберите изображение, нажав кнопку «Импортировать в проект», затем нажмите «Готово».На панели «Навигатор» (слева внизу по умолчанию, если отключено, перейдите на вкладку Windows в среде Netbeans IDE и включите ее.)

с помощью Jlable вы можете установить цвет фона, а также изображение.

1

Попробуйте это:

this.getContentPane().setBackground(Color.white); 
+0

@midhunhk Ответ на код, возможно, не очень хороший, но это все равно ответ. Я бы порекомендовал вам эту запись о LQPRQ: [Вы делаете это неправильно: призыв к здравомыслию в очереди с низким качеством сообщений] (http://meta.stackoverflow.com/questions/287563/youre-doing-it- неправильно-a-plea-for-sanity-in-the-low-quality-posts-queue) – FelixSFD

+0

Я чувствую, что это предложение для решения, которое может быть или не быть ответом. Если OP пытается это и считает, что он работает, они могут попросить вас добавить в качестве ответа, чтобы отметить его. Так я обычно работаю. – midhunhk

4

Это самый простой и правильный метод. Все, что вам нужно сделать, это добавить этот код после initComponents();

getContentPane().setBackground(new java.awt.Color(204, 166, 166)); 

Это пример цвета RGB, вы можете заменить его желаемым цветом. Если вы не знаете коды цветов RGB, пожалуйста, найдите в Интернете ... есть много сайтов, которые предоставляют пользовательские цвета, подобные этому. не

0
public nameOfTheClass() { 

final Container c = this.getContentPane(); 

    public void actionPerformed(ActionEvent e) { 
    c.setBackground(Color.white); 
    } 
} 
+0

Как правило, ответы гораздо полезнее, если они содержат объяснение того, что должен делать код , и почему это решает проблему, не представляя других. –

+0

Я ответил конкретно, с кодом, который решает проблему, что человек с вопросом. Ни в коем случае не добавляйте еще одну проблему, как вы говорите. – Learning

Смежные вопросы