关于java JPanel 里面 add (字符串,组件)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于java JPanel 里面 add (字符串,组件)相关的知识,希望对你有一定的参考价值。
for(int i=0;i<10;i++)
myPanel[i]=new MyPanel(i+1);
p.add("A"+i,myPanel[i]);
这个语句中
p.add("A"+i,myPanel[i]); “A”+i 有什么用
是什么意思 为什么我在我的整个代码里面去掉这个后就不显示了
求各位大侠帮帮忙
一般 Jpanel的类的 add 方法 在什么情况下
用add(字符串,组件)形式
myPanel[i]这个是一个容器对象,在容器的调用过程中,如果一直使用容器对象是很不方便的。所以在add()方法中,可以给容器添加一个字符串作为它的名字用以区分其他容器 。而此时这个容器的名字就是Ai。
p.add("A"+i,myPanel[i]);这句代码的作用是:在你声明了一个myPanel[i]时,你并没有使用它,你必须使用add()函数把它添加进你的JPanel中,这样才能显示出来。追问
"A"+i 这个我去掉后为什么 myPane[i]就不显示了
一般 Jpanel的类的 add 方法 在什么情况下
用add(字符串,组件)形式
add()方法第一个参数必须要有。但是你可以自己改。
在add方法之后,应该还有show()方法吧?show()方法中要用到组件的名字:"A"+i
把"A"+i改了之后必须在show()里面也改。才能显示出来
额 没有show()呢
这段代码是我书上的一个例子
JPanel 的add()不是有两种形式吗
一种是 add(组件)
一种是 add(字符串,组件)
为什么 我的这个用第一种就不显示 而一定要用 字符串的那种才显示呢
刚才查过api了,
add(Component comp)
将指定组件追加到此容器的尾部。
add(String name, Component comp)
将指定组件添加到此容器中。
因为只含组件参数时是追加到容器的底部的原因吧。
show()的方法是在卡片布局中切换到其他卡片用的。
教材上面写的这两种形式额~~
例子上面也没用到你说的 show()方法
刚才查过api了,
add(Component comp)
将指定组件追加到此容器的尾部。
add(String name, Component comp)
将指定组件添加到此容器中。
因为只含组件参数时是追加到容器的底部的原因吧。
额 还是不太明白
参考技术A "A"+i相当于是myPanel[i]的名字。用于区分i个myPanel[i]。在声明了一个 自定义的容器后,你仅仅是声明了它,但是没有把它添加到JPanel中。当然不会显示了。使用p.add(字符串 A,子容器对象 B)的方法。字符串A相当于就是myPanel[i]的名字,用于区分其他容器。myPanel[i]是一个容器对象。 参考技术B p.add("A"+i,myPanel[i]);
你是 ("A"+i,myPanel[i]); 反了吧 "A"+i 是个字符串 add 第一个参数 是类 不是字符串追问
没反 程序是对的
Java中的JPanel与JFrame
【中文标题】Java中的JPanel与JFrame【英文标题】:JPanel vs JFrame in Java 【发布时间】:2012-10-24 03:03:26 【问题描述】:我正在学习 Java gui。我学习创建窗口的方法是继承或扩展JFrame
类,使用它很好,因为JFrame
包含窗口的所有属性。现在如果我想在这个窗口中添加一些东西,我需要使用add()
方法。但是今天我遇到了JPanel
,它也创建了一个窗口,我们可以通过jpanelObjec.add()
添加东西。
这两种方法有什么区别?它们有什么关联吗?
【问题讨论】:
类似问题:***.com/questions/3497889/… 【参考方案1】:您不应不必要地扩展 JFrame
类(仅当您向 JFrame
类添加额外功能时)
JFrame:
JFrame
扩展了 Component
和 Container
。
它是一个***容器,用于表示一个窗口的最低要求。这包括Border
s、可调整大小(JFrame
是否可调整大小?)、标题栏、控件(允许最小化/最大化?)和各种Event
s 的事件处理程序,如windowClose
、windowOpened
等。
JPanel:
JPanel
扩展 Component
、Container
和 JComponent
它是一个通用类,用于将其他Component
s 组合在一起。
在使用 LayoutManager
s 时很有用,例如GridLayout
f.i 将组件添加到不同的 JPanel
s,然后将其添加到 JFrame
以创建 gui。就Layout
和可重用性而言,它将更易于管理。
这对于在 Swing 中绘画/绘图时也很有用,您可以覆盖 paintComponent(..)
,当然还有双缓冲的全部乐趣。
如果没有***容器(如(JWindow
、Window
、JFrame
Frame
或 Applet
),Swing GUI 就无法存在,而没有JPanel
s 则它可能存在。
【讨论】:
实际上,JFrame 并没有扩展JComponent
和 JContainer
。【参考方案2】:
JFrame
是窗口;它里面可以有一个或多个JPanel
实例。 JPanel
不是窗口。
你需要一个 Swing 教程:
http://docs.oracle.com/javase/tutorial/uiswing/
【讨论】:
以上是关于关于java JPanel 里面 add (字符串,组件)的主要内容,如果未能解决你的问题,请参考以下文章
java swing JPanel添加在JScrollPane上,有垂直的滚动条,可是滚动条拉到底,只显示了JPanel的一部分。