Привет, у меня возникли проблемы со ссылкой на источник 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() или что-то в этом роде?