-1

I have a simple java applet,but the panel is not appearing even after adding it,i have set the gridlayout for the panel and the the default layout for 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)
{
}
}

The applet is running blank

EDIT: Modified the code the code now runs but im little confused how the layout manager works the gridlayout with values 3,3,5,5 says there should be 3 rows and 3 columns with 5padding.SO why is the applet like this

enter image description here

4

3 に答える 3

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 に答える
4

あなたのコードを通り抜けるように

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

setLayoutnullにしてはいけない

于 2013-02-24T10:29:34.440 に答える
1

フロー レイアウトを追加しただけで、正常に動作します。問題はnull レイアウトに違いありません。

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