Java布局管理未显示面板

时间:2013-02-24 10:19:06

标签: java swing applet awt layout-manager

我有一个简单的Java小程序,但即使添加它后面板也不会出现,我已经为面板设置了gridlayout,并为Jpanel设置了默认布局。

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的gridlayout工作表示应该有3行和3列5padding.SO  为什么小程序像这样

enter image description here

3 个答案:

答案 0 :(得分:4)

通过你的代码

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

你不应该setLayout为空

答案 1 :(得分: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);
    }
}

答案 2 :(得分:1)

我刚刚添加了流程布局,它运行正常。问题必须是null布局。

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