即時通訊Java新手,所以我嘗試了一些東西。使用BorderLayout繪製到嵌套面板
我正在玩Java佈局,特別是使用BorderLayout的嵌套面板。
我的問題是我無法繪製到嵌套面板。我能夠繪製到主面板,但不能嵌入其中的面板。
如果你能告訴我我哪裏出錯了,我會非常感激。
這裏是我的主要代碼:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class GUI extends JFrame{
public GUI()
{
setSize(600,600);
這裏是主面板。
JPanel pan1 = new JPanel();
pan1.setLayout(new BorderLayout());
pan1.setPreferredSize(new Dimension(200,200));
JLabel label = new JLabel("Panel 1");
pan1.add(label);
然後,我創建了兩個嵌套面板,我將其添加到主面板。
JPanel pan2 = new JPanel();
pan2.setBackground(Color.YELLOW);
pan2.setPreferredSize(new Dimension(200,200));
JPanel pan3 = new JPanel();
pan3.setBackground(Color.YELLOW);
pan3.setPreferredSize(new Dimension(200,200));
這裏是我稱之爲繪製屏幕上形狀的類。
draw drawingShape = new draw();
這是問題,因爲我無法將形狀繪製到嵌套面板。
pan2.add(drawingShape);
但是我可以把它畫到這個主面板上。
pan1.add(drawingShape);
我將兩個面板插入主面板。 pan1add(pan2,BorderLayout.NORTH); pan1.add(pan2,BorderLayout.NORTH); pan1add(pan3,BorderLayout.SOUTH); pan1.add(pan3,BorderLayout.SOUTH);
getContentPane().add(pan1);
setVisible(true);
}
public static void main(String args[])
{
new GUI();
}
}
下面是用於創建,其形狀是completley精細的代碼:
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
public class draw extends JPanel{
public void paint(Graphics g) {
Image img = createImage();
g.drawImage(img, 20,20,this);
}
private Image createImage(){
BufferedImage bufferedImage = new BufferedImage(200,200,BufferedImage.TYPE_INT_RGB);
Graphics g = bufferedImage.getGraphics();
return bufferedImage;
}
}
的代碼並編譯,我明白任何幫助。
問候