嗨我在我的JFrame中引用JPanel的原點時遇到了問題。我的JPanel在構造函數中的設置如下,我想添加一條位於JPanel左邊的行。引用JFrame中JPanel的座標
table = new JPanel();
table.setBackground(Color.green);
table.setBounds(10,10, 600, 600);
table.setSize(width.getValue(), height.getValue());
add(table);
然後paint方法...
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()));
}
在paint方法的最後一個命令是無關的我的問題...... 的代碼似乎越來越原點爲(10,10 ),但將其作爲一個整體應用於JFrame而不是contentPane。我不完全理解contentPane,但我認爲add()添加到內容窗格,從那時起,您只是從contentPane引用座標......我只是不明白爲什麼setBounds()添加了JPanel,想要它是(10,10)僅與contentPane相關,但是當我繪製()時,它似乎獲得了與contentPane相關的座標,但是在引用JFrame時繪製了這些座標。我意識到我可以添加一個值來移動這條線,但我懷疑這是一個糟糕的解決方案。
我是否需要使用它自己的paint()方法或其他方法添加contentPane?
好吧,這是有道理的......是的,它爲什麼我使用了界限..我有佈局的麻煩,並不想陷入他們中,因爲它爲一個學校項目,但我打算一旦我得到它的功能,就把它們弄清楚。 – Yoshi 2012-04-18 20:12:54
*「我計劃一旦我得到它的功能就計算出它們。」*除非你這樣做,否則你的GUI將無法正常工作。 – 2012-04-19 05:05:51
@AndrewThompson我昨晚發現了這個困難的方式:)看起來像我會比我計劃的更早地學習佈局管理器 – Yoshi 2012-04-19 16:24:13