Здравейте, имам проблем с реферирането на произхода на JPanel в моя JFrame. Моят JPanel беше настроен така, че в конструктора искам да добавя линия, която е в левия край на моя JPanel.
table = new JPanel();
table.setBackground(Color.green);
table.setBounds(10,10, 600, 600);
table.setSize(width.getValue(), height.getValue());
add(table);
След това методът на боядисване...
public void paint(Graphics g){
super.paint(g);
Graphics2D g2d = (Graphics2D)g;
g2d.drawLine(table.getX(), table.getY(), table.getX(), (table.getY() + table.getHeight()));
g2d.drawLine(100, 100, (int)Math.round(cueBall.getPositionX()), (int)Math.round(cueBall.getPositionY()));
}
Последната команда в метода за рисуване не е свързана с моя проблем... Кодът изглежда получава произхода като (10, 10), но го прилага към JFrame като цяло, а не към contentPane. Не разбирам напълно contentPane, но си помислих, че add() добавя към панела със съдържание и оттогава нататък вие препращате към координати само от contentPane... Просто не виждам защо setBounds() добави JPanel, където аз исках го, което беше (10,10) по отношение само на contentPane, но когато рисувам() изглежда, че получавам координатите по отношение на contentPane, но рисувам тези координати по отношение на JFrame. Осъзнавам, че мога просто да добавя стойност, за да преместя реда надолу, но подозирам, че това е лошо решение.
Трябва ли да добавя contentPane с негов собствен метод paint() или нещо подобно?