-1

我有一个简单的 java 小程序,但即使添加后面板也没有出现,我已经为面板设置了网格布局和 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 的网格布局表示应该有 3 行和 3 列和 5padding。所以为什么小程序是这样的

在此处输入图像描述

4

3 回答 3

4

As going trough your code

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

You should not do setLayout to null

于 2013-02-24T10:29:34.440 回答
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);
    }
}
于 2013-02-24T10:38:19.770 回答
1

我刚刚添加了流布局,它工作正常。问题必须是蜜蜂null 布局。

public void init()
{
this.setLayout(new FlowLayout());
mp=new JPanel();
...
于 2013-02-24T10:39:21.740 回答