gpt4 book ai didi

java - 在 JApplet 的不同位置添加两个 JPanel

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:24:48 24 4
gpt4 key购买 nike

我试图在 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);
}
}

异常

java.lang.IllegalArgumentException: illegal component position
at java.awt.Container.addImpl(Container.java:1080)
at java.awt.Container.add(Container.java:998)
at TwoPanel.init(TwoPanel.java:25)
at sun.applet.AppletPanel.run(AppletPanel.java:435)
at java.lang.Thread.run(Thread.java:744)

最佳答案

p1.add(l1,0,0);

这不是如何在面板中定位东西。为空白使用边框。

enter image description here

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);
}
}

更普遍

Java GUI 可能必须在多种平台、不同的屏幕分辨率和使用不同的 PLAF 上工作。因此,它们不利于元件的精确放置。要为强大的 GUI 组织组件,请改用布局管理器或 combinations of them 1,以及 white space 的布局填充和边框2

  1. >
  2. >

关于java - 在 JApplet 的不同位置添加两个 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23053306/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com