Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在JApplet上的不同位置添加两个JPanel_Java_Swing_Jpanel_Layout Manager - Fatal编程技术网

Java 在JApplet上的不同位置添加两个JPanel

Java 在JApplet上的不同位置添加两个JPanel,java,swing,jpanel,layout-manager,Java,Swing,Jpanel,Layout Manager,我试图在JApplet上的不同位置添加两个JPanel对象。 但此代码引发异常: java.lang.IllegalArgumentException: illegal component position 有人会纠正这个代码吗 import java.awt.FlowLayout; import javax.swing.*; public class TwoPanel extends JApplet { JPanel p1,p2; JLabel l1,l2; @

我试图在
JApplet
上的不同位置添加两个
JPanel
对象。 但此代码引发异常:

java.lang.IllegalArgumentException: illegal component position
有人会纠正这个代码吗

import java.awt.FlowLayout;
import javax.swing.*;

public class TwoPanel extends JApplet {

    JPanel p1,p2;
    JLabel l1,l2;

    @Override
    public void init()
    {
        p1=new JPanel();
        p2=new JPanel();
        p1.setLayout(new FlowLayout());
        p2.setLayout(new FlowLayout());
        l1=new JLabel("Panel 1");
        l2=new JLabel("panel 2");
        p1.add(l1,0,0);
        p2.add(l2,100,100);
        add(p1);
        add(p2);
        p1.setFocusable(true);
        p2.setFocusable(true);
    }
}
例外情况 这不是如何在面板中定位对象。在空白处使用边框

import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;

/* <applet code=TwoPanel width=400 height=300></applet> */
public class TwoPanel extends JApplet {

    JPanel p1,p2;
    JLabel l1,l2;

    @Override
    public void init()
    {
        // JApplet defaults to BorderLayout
        System.out.println(getLayout());
        p1=new JPanel();
        p2=new JPanel();
        p1.setLayout(new FlowLayout());
        p2.setLayout(new FlowLayout());
        l1=new JLabel("Panel 1");
        l2=new JLabel("panel 2");
        p1.add(l1);
        p1.setBackground(Color.RED);
        p2.add(l2);
        p2.setBackground(Color.GREEN);
        p2.setBorder(new EmptyBorder(100,100,100,100));
        // a panel added to a BorderLayout with no constraint ends in the CENTER
        add(p1, BorderLayout.PAGE_START);
        // but the CENTER only shows ONE component.
        add(p2);
        p1.setFocusable(true);
        p2.setFocusable(true);
    }
}

import java.awt.*;
导入javax.swing.*;
导入javax.swing.border.*;
/*1,以及2的布局填充和边框


  • @这是我的问题!是的,我看到了。请看AndrewThompson的答案以获得一些有用的提示。如果答案有助于解决问题,请给出答案。
    p1.add(l1,0,0);
    
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.border.*;
    
    /* <applet code=TwoPanel width=400 height=300></applet> */
    public class TwoPanel extends JApplet {
    
        JPanel p1,p2;
        JLabel l1,l2;
    
        @Override
        public void init()
        {
            // JApplet defaults to BorderLayout
            System.out.println(getLayout());
            p1=new JPanel();
            p2=new JPanel();
            p1.setLayout(new FlowLayout());
            p2.setLayout(new FlowLayout());
            l1=new JLabel("Panel 1");
            l2=new JLabel("panel 2");
            p1.add(l1);
            p1.setBackground(Color.RED);
            p2.add(l2);
            p2.setBackground(Color.GREEN);
            p2.setBorder(new EmptyBorder(100,100,100,100));
            // a panel added to a BorderLayout with no constraint ends in the CENTER
            add(p1, BorderLayout.PAGE_START);
            // but the CENTER only shows ONE component.
            add(p2);
            p1.setFocusable(true);
            p2.setFocusable(true);
        }
    }