Я делаю графический интерфейс Java и 2 часа искал в интернете, как сделать градиент для JPanel. Код ниже, что у меня есть, но при запуске градиент не показывает. Что не так?
Я пробовал много других постов с похожими вопросами по этому вопросу в Интернете, но они не работают. Я пробовал множество версий, но я также точно не знаю, как запустить класс в классе. Может кто-нибудь помочь мне, пожалуйста?
class TestPanel extends JPanel{
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
int w = getWidth();
int h = getHeight();
Color color1 = Color.BLUE;
Color color2 = Color.GREEN;
GradientPaint gp = new GradientPaint(0, 0, color1, 0, h, color2);
g2d.setPaint(gp);
g2d.fillRect(0, 0, w, h);
}
} //this is nested within the main class
// некоторый код
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
CreateGUI cg = new CreateGUI();
cg.create(); //previous method (not mentioned here)
CreateGUI.TestPanel tp = cg.new TestPanel(); //problem
JPanel panel = new JPanel();
f.add(panel);
f.setSize(800, 600);
f.setLocationRelativeTo(null);
f.getContentPane().setLayout(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
});
}
Я ожидаю, что будет градиент, но его нет;фон JPanel по-прежнему белый