java mypanel什么用?关于java JPanel 里面 add (字符串,组件)
大家好,关于java mypanel什么用很多朋友都还不太明白,今天小编就来为大家分享关于关于java JPanel 里面 add (字符串,组件)的知识,希望对各位有所帮助!
求java大神解答几个问题
1、解释这句没啥意思,其实核心是用背景色填充当前画面的尺寸,你可以注释掉这句看看效果,就明白了
2、g是图像上下文,一般情况下,java只将图像上下文放在paint方法和paintComponent里,其他地方没有出现,这个程序你把paint方法换成 paintComponent方法,后者是默认实现双缓冲机制的
3、this指的是当前类,this.drawTank等同于 drawTank,用Eclipse等工具时,这样写,可以偷懒
4、x y就是传入的mt.getX mt.getY
java 怎么在一个面板中重复添加同一个按钮
你是不是用的awt而不是Swing?
首先想要这么多按钮,要new这么多次是肯定的,不可能new一次然后反复添加就可以了。因为java组件容器中在添加时首先会检测该组件是否已经包含在一个容器中,如果已经包含,就会先将其移除,然后再重新添加。
然后关于慢的问题:我相信你是用的是AWT而不是Swing,这两个库的速度完全不一样,如果你使用Swing,添加10000个按钮并创建窗体应该在1秒左右就能完成了
下面这个代码你试一下就知道了:
import java.awt.*;
import javax.swing.*;
/**
*
*@author Jeky
*/
public class ButtonsDemo extends JFrame{
public ButtonsDemo(){
this.setLayout(new FlowLayout());
for(int i= 0; i< 10000; i++){
JButton button= new JButton();
button.setPreferredSize(new Dimension(5, 5));
this.add(button);
}
this.setSize(800, 800);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args){
new ButtonsDemo().setVisible(true);
}
}
java 怎么用JTextField获取JPanel中的控件数据
你的问题在于问题本身。你只写到了类,而没有提到对象。
类与类之前是不能做用的,只有对象,才能有操作。
所以我只能猜测你的想法,是通过一个面板上的文本框来操作其它控件。
那么,简单来的说,控件都要属于一个父控件。
不过通常你要获取这个比较麻烦,所以你可以自己继承JTextField这个类,然后增加一个parent的属性。
pulbic class MyTxt extends JTextField{
JPanel parent;
MyTxt( JPanel parent){
tihs.parent=parent;
}
}
这样,你在创建这个文本框对象的时候就可以调用它的父面板了。
你可以这样用。
public class MyPanel extends JPanel{
MyTxt txt=new MyTxt(this);
}
关于java JPanel 里面 add (字符串,组件)
"A"+i是容器myPanel[i]的名字。
myPanel[i]这个是一个容器对象,在容器的调用过程中,如果一直使用容器对象是很不方便的。所以在add()方法中,可以给容器添加一个字符串作为它的名字用以区分其他容器。而此时这个容器的名字就是Ai。
p.add("A"+i,myPanel[i]);这句代码的作用是:在你声明了一个myPanel[i]时,你并没有使用它,你必须使用add()函数把它添加进你的JPanel中,这样才能显示出来。
好了,文章到此结束,希望可以帮助到大家。