我創建了兩個類。在每個類中定義兩個不同類的對象
一類叫做Frames
,裏面我定義了一個Jframe
和一個Image
。
在另一個稱爲的類中,我定義了Jpanel
。
我想使用getPanel方法將面板傳遞給Frames類,並使用getImage方法將圖像傳遞給Panels類。
所以我在Panels類中創建了一個Frames對象來調用getImage 並在Frames類中創建了一個Panels對象來調用getPanel。 但是當我運行代碼時,會出現以下消息:
線程「main」中的異常java.lang.StackOverflowError。
public class panels{
frames framesObject = new frames();
JPanel panel = new JPanel(){
public void painComponent(Graphics g){
super.paintComponent(g);
g.drawImage(frames.getImage(),0,0,null);
}
};
public Jpanel getPanel(){
return panel;
}
}
public class frames{
JFrame frame= new JFrame();
Toolkit toolkit= Toolkit.getDefaultToolkit();
Image image = toolkit.getImage("..source file..");
panels panelsObject= new panels();
frame.add(panelsObject.getPanel());
public Image getImage(){
return image;
}
也許,在你的'Panels'類'setImage'方法,並從'Frame'類將它傳遞的圖像......這一切都那種錯綜複雜的,如果你問我 – MadProgrammer
似乎是錯誤的由他們互相調用,直到內存用完 - 在沒有提供任何代碼的情況下很難提供幫助。 – AscendedKitten