Я пытаюсь нарисовать линию в JFrame
, но линия не рисуется.
Я пытался использовать метод setOpaque(true)
для contentPane
, lblNewLabel
и l
, но ничего не изменилось. Я также пытался позвонить repaint();
вне этого класса, но ситуация все та же. Вот код:
public class DrawingClass extends JFrame
{
private JPanel contentPane;
public DrawingClass(int n, int s, int p) {
Line l= new Line();
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(700, 300, 480, 640);
contentPane = new JPanel();
contentPane.setOpaque(true);
setResizable(false);
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblNewLabel = new JLabel("");
lblNewLabel.setIcon(new ImageIcon("image.png"));
lblNewLabel.setBounds(0, 0, 480, 640);
contentPane.add(lblNewLabel);
l.setBounds(0,0,480,640);
contentPane.add(l);
repaint();
}
class Line extends JPanel
{
public void paintComponent(Graphics g) {
g.setColor(Color.BLUE);
g.fillRect(10, 10, 15, 12);
}
}
}
Я ожидаю небольшую линию в левом верхнем углу JFrame, над фоновыми обоями, но ничего не происходит. Показывает только обои.