Я хочу нарисовать JPanel на JFrame. Цвет фона для JFrame отличается для JPanel. До сих пор этот мой код:Различные цвета фона для JFrame и JPanel
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class DifferentColor extends JFrame{
JPanel p;
GradientColor(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setPreferredSize(new Dimension(500, 500));
this.getContentPane().setBackground(Color.yellow);
p = new JPanel();
p.setPreferredSize(new Dimension(400, 400));
p.setBackground(Color.red);
this.add(p);
this.pack();
this.setVisible(true);
}
public static void main(String[] args) {
// TODO code application logic here
new DifferentColor();
}
}
Когда я запускаю код, красный цвет. Не красный (JPanel) на желтом (JFrame). Как его решить?
Код вашего кода даже компилируется, имя класса 'DifferentColor' и имя конструктора' GradientColor' не соответствуют – Arvind
'JFrame' использует' BorderLayout', затем 'JPanel' (' this.add (p); '), охватывающий весь 'getContentPane()', вы можете использовать GridBagLayout или BoxLayout для JFrame, тогда часть 'getContentPane()' должна быть видимой на экране – mKorbel