我想繪製由.form創建的子面板。有一個「mainPanel」,它包含三個名爲panel1(top),panel2(bottom-left)和panel3(bottom-right)的子面板。如何繪製由.form創建的子面板?
現在我想在subPanel「panel1」上畫一些東西,但它不起作用。當我運行該程序時,它只顯示三個子面板,但沒有繪製「paintComponent()」方法。
我粘貼我的代碼在這裏,任何人都可以幫助我檢查是什麼問題?非常感謝。
public class PanelDrawTest extends JFrame {
private JPanel mainPanel;
private JPanel panel1;
private JPanel panel2;
private JPanel panel3;
public PanelDrawTest(){
getContentPane().add(mainPanel);
setPanel1(new MyPanel1());
}
public JPanel getMainPanel() {
return mainPanel;
}
public JPanel getPanel1() {
return panel1;
}
public void setPanel1(JPanel panel1) {
this.panel1 = panel1;
}
private class MyPanel1 extends JPanel {
public MyPanel1(){
}
@Override
public void paintComponent(Graphics g){
g.drawString("This is Panel 1",20,20);
g.drawRect(0,200,100,200);
}
}
public static void main(String args[]){
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
createAndShowGUI();
}
});
}
private static void createAndShowGUI() {
PanelDrawTest frame = new PanelDrawTest();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(50, 50, 1200, 700);
frame.setPreferredSize(new Dimension(1200,800));
frame.pack();
frame.setVisible(true);
}
}
當「的mainPanel」開始時,我的問題仍然是開放的。因爲我在GUI設計中通過.Form構建了帶有子面板的mainPanel。但是,我不知道如何在不同的子面板中繪製圖形。這個例子有助於(http://stackoverflow.com/questions/8661973/drawing-inside-multiple-jpanels?rq=1),但subPanels是在代碼中構建的,而不是在.form中。我認爲我的問題應該是如何調用GUI .form設計中構建的子面板。 – luluValley