java JPanel 的add

JPanel p=new JPanel();
JLabel l=new JLabel();
Icon icon=new ImageIcon("D:\\01.jpg"); //在此直接创建对象
l.setIcon(icon);
l.setBounds(0, 0, icon.getIconWidth(),icon.getIconHeight());
p.add(l,new Integer(Integer.MIN_VALUE));

这个new Integer(Integer.MIN_VALUE)有什么作用?

add(Component comp, Object constraints) 方法是把指定组件添加到指定位置。
p.add(l,new Integer(Integer.MIN_VALUE));表示把I面板添加到p面板的尾部。
如果去掉new Integer(Integer.MIN_VALUE) 则是把I添加到p中部,不过你这个案例表现不出来
如果这样不容易理解的话,换个比较常见:
JPanel p=new Jpanel(new BorderLayout());
p.add(BorderLayout.WEST,new JLabel());
这里的 Object constraints就是BorderLayout.WEST 不过这里是String类型的
你可以理解成一种固定模式的写法。不要深究。追问

public Component add(Component comp, int index) index - 插入组件的位置,-1 表示将组件追加到尾部,这个Integer.MIN_VALUE好像不等于-1吧,他和-1是同一个效果?

追答

Integer.MIN_VALUE=-2^31
Integer和int 是不同的概念。。不要混淆了。。
前者是Object 后者是基本类型,add这个方法是多态的!
在你这个案例中,效果一样.不过当存在多个组件的时候就会有差别,
index=-1是显示在最外面,当存在多个组件的时候,后面的会遮盖前面的.你可以试试
具体用法你可以查询一下API

温馨提示:内容为网友见解,仅供参考
无其他回答

java的JPanel的add()方法是怎样定义的?
使用jpanel的add方法添加多个组件,按照添加的顺序从上显示 imagepanel = new ImagePanel(image);jPanel_image.add(imagepanel,0);1、如果添加的多个0,结果会怎样?2、我在添加第二个的时候的index应该怎么写?3、添加了多个组件,怎样能查到之前添加的组件,有没有标识什么的?

java JPanel 的add
add(Component comp, Object constraints) 方法是把指定组件添加到指定位置。p.add(l,new Integer(Integer.MIN_VALUE));表示把I面板添加到p面板的尾部。如果去掉new Integer(Integer.MIN_VALUE) 则是把I添加到p中部,不过你这个案例表现不出来 如果这样不容易理解的话,换个比较常见:JPanel p=new J...

java中的jpanel怎么使用呢?
创建JPanel对象:首先,需要创建一个JPanel对象。可以通过调用其构造函数来创建。添加组件到JPanel:然后,可以将其他GUI组件添加到JPanel中。这可以通过调用JPanel的add方法来实现。设置布局管理器:为了有效地管理组件的布局,可以为JPanel设置一个布局管理器。常见的布局管理器有FlowLayout、BorderLayout等。

java JPanel重叠覆盖问题。
首先遗憾的告诉你,add方法添加以后,本来就是覆盖式的,不存在透明化的问题,因为父panel会挨次调用子类的panel的paint方法,将其绘制在自己表面。也就是说,你想通过add,然后设置子面板透明的方法本身是行不通的。但这并不意味着就没有办法了,很简单,你自己管理绘制就可以了。方法有两种:1、自己...

Java swing中如果JPanel中add一个JTextare。怎么通过jtextarea获取Jpanel...
视情况而定,如果是手写代码,直接在panel中add textArea,则用getParent()方法就可以获取panel;但如果是用设计工具添加的,如NetBeans,则设计工具会自动在textArea外再包一个JScrollPanel,不同的设计工具可能有所不同。此时,就需要层层剖析。还是以NetBeans为例,textArea是显示在JScrollPanel的ViewPort...

JAVA 怎么让JPanel放在窗口的最上层
(JFrame).getLayeredPane().setLayout(null);(JFrame).getLayeredPane().add(JComponent,new Integer(Integer.MAX_VALUE));

java swing Jpanel 怎么添加一个Jdialog弹出框
方法一:JOptionPane 创建1个简单的弹出框.(代码量少, 效果简单)方法二Dialog\/JDialog 创建1个弹出框.(代码量长,可以实现复杂的效果)效果图 参考代码 import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Demo extends JFrame {JPanel jp;static final String title = "...

JAVA中的JPanel怎么使用呢?
JPanel p=new JPanel(new BorderLayout());但这种方法不能用在BoxLayout(盒子布局)中,因为BoxLayout构造器需要一个预留(pre-existing)容器。如下所示:JPanel p=new JPanel();p.setLayout(new BoxLayout(p,BoxLayout.PAGE_AXIS));添加控件 向面板容器中添加组件时使用add()方法,而向add()方法...

java 中怎样删除当前jframe中的一个jpanel 并添加一个新的jpanel
jp1 里输入用户名, 不能为空 jp1里输入了用户名 jp1被删除,然后显示jp2 参考代码 import javax.swing.*;import java.awt.event.*;public class PanelFrame extends JFrame implements ActionListener {JPanel jp1, jp2;JTextField jtf;JButton jb1;JLabel jl2;public PanelFrame() {jp1 = new...

Java 怎么在JPanel面板中加入自定义的JPanel面板
JPanel(); jp2 = new JPanel(); jt = new JTextField(10); jb = new JButton("确定"); jp1.add(jt); jp1.add(jb); jp2.add(jp1);\/\/把jp1面板加入到jp2中 this.add(jp2); this.setSize(240,200); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);...

相似回答