2013-02-24 239 views
-1

我有一個簡單的Java小程序,但面板即使添加後也沒有出現,我已經設置了面板的gridlayout和Jpanel的默認佈局。Java佈局管理不顯示面板

import java.io.*; 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
//<applet code="vote.class" width=400 height=200></applet> 
public class vote extends JApplet implements ActionListener 
{ 
JLabel l1,l2,l3; 
JButton b1,b2,b3; 
JPanel mp; 
Panel p1,p2; 

public void init() 
{ 
this.setLayout(null); 
mp=new JPanel(); 
//mp.setLayout(null); 
Panel p1=new Panel(); 
p1.setLayout(null); 
p1.setLayout(new GridLayout(3,3,5,5)); 

l1=new JLabel("test"); 
l2=new JLabel("test2"); 
l3=new JLabel("test2"); 
p1.add(l1); 

p1.add(l2); 
p1.add(l3); 


mp.add(p1); 
add(mp); 
} 
public void actionPerformed(ActionEvent AE) 
{ 
} 
} 

小程序運行空白

編輯: 修改代碼的代碼現在運行,但即時通訊有點迷糊的佈局管理器如何與價值觀的網格佈局3,3,5,5說,應該有3行3列與5padding.SO 爲什麼是applet這樣

enter image description here

+3

對代碼塊使用一致的邏輯縮進。代碼的縮進旨在幫助人們理解程序流程。 – 2013-02-24 10:30:58

+0

@AndrewThompson :) – techno 2013-02-24 12:03:35

+0

*「有點困惑,佈局管理器如何使用值爲3,3,5,5的網格佈局表示應該有3行3列使用5padding。」* 3x3是9個組件,而您只添加了3個組件。嘗試添加更多。 – 2013-02-24 12:19:30

回答

4

如去低谷代碼

this.setLayout(null); // seems to be the problem comment it or provide mp with bounds 

你不應該做setLayout爲null

+0

+1它似乎是唯一的問題。 – Arpit 2013-02-24 10:40:24

+0

如果我刪除this.setLayout(null);它的工作原理,但你可以回答更新的問題。謝謝 – techno 2013-02-24 12:14:28

4

試試這個代碼,而不是。它始終如一地使用佈局,只使用Swing組件,將顏色添加到面板以使其更加清晰&已被證實可以工作。

import java.io.*; 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
//<applet code="vote.class" width=400 height=200></applet> 
public class vote extends JApplet 
{ 
    JLabel l1,l2,l3; 
    JButton b1,b2,b3; 
    JPanel mp; 
    // don't mix Swing with AWT components! 
    JPanel p1,p2; 

    public void init() 
    { 
     mp=new JPanel(); 
     mp.setBackground(Color.YELLOW); 
     p1=new JPanel(); 
     p1.setBackground(Color.GREEN); 
     p1.setLayout(new GridLayout(3,3,5,5)); 

     l1=new JLabel("test"); 
     l2=new JLabel("test2"); 
     l3=new JLabel("test2"); 
     p1.add(l1); 
     p1.add(l2); 
     p1.add(l3); 


     mp.add(p1); 
     add(mp); 
    } 
} 
+0

+1教學如何寫一個japplet .. – 2013-02-24 10:59:46

+0

@HarmeetSingh:還請注意安德魯方便的_tag-in-source_註釋,說明[這裏](http://stackoverflow.com /一個/230513分之7455066)。 – trashgod 2013-02-24 13:32:11

1

我只是增加了流佈局,它工作正常。該問題必須是佈局的null

public void init() 
{ 
this.setLayout(new FlowLayout()); 
mp=new JPanel(); 
...