100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > java动态添加组件_有关Java Swing动态增加组件

java动态添加组件_有关Java Swing动态增加组件

时间:2019-03-30 22:32:58

相关推荐

java动态添加组件_有关Java Swing动态增加组件

展开全部

效果图

参考代码importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

//本类继承自JFrame实现了ActionListener接口

publicclassDemoFrame1extendsJFrameimplementsActionListener{

JPaneljpc;//存放组件的面板

JScrollPanejsp;//滚动面板

JButtonjbAdd,jbRemove,jbReset;//增加,删除按62616964757a686964616fe4b893e5b19e31333365633932钮

intindex=1;//开始的字符

//构造函数

publicDemoFrame1(){

jpc=newJPanel();

jpc.setLayout(newBoxLayout(jpc,BoxLayout.Y_AXIS));//盒子布局.从上到下

jsp=newJScrollPane(jpc,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

add(jsp);

jbAdd=newJButton("增加");

jbAdd.addActionListener(this);

jbRemove=newJButton("删除");

jbRemove.addActionListener(this);

jbReset=newJButton("重置");

jbReset.addActionListener(this);

JPaneljps=newJPanel();

jps.add(jbAdd);

jps.add(jbRemove);

jps.add(jbReset);

add(jps,BorderLayout.SOUTH);

setTitle("增删组件");

setDefaultCloseOperation(EXIT_ON_CLOSE);

setSize(300,220);//大小

setLocationRelativeTo(null);//居中

}

//main函数

publicstaticvoidmain(String[]args){

newDemoFrame1().setVisible(true);//初始化并可见

}

@Override

publicvoidactionPerformed(ActionEvente){

JButtonjb=(JButton)e.getSource();

if(jb==jbAdd){//当点击添加按钮时

jpc.add(newMyJPanel(index));//添加1个自己定义的面板组件

index++;//自加1

myUpdateUI();//刷新界面

}elseif(jb==jbRemove){//当点击删除按钮时

if(jpc.getComponentCount()>0){//得到jpc里的MyJPanel的组件数量

jpc.remove(jpc.getComponentCount()-1);//删除末尾的一个组件,

index-=1;

myUpdateUI();

}

}elseif(jb==jbReset){

for(inti=0;i

MyJPanelmjp=(MyJPanel)jpc.getComponent(i);

//也就是说取值,可以根据文本框所在的位置来取

System.out.println("第"+(i+1)+"个文本框的值是"+mjp.getJTFValue());

mjp.setJTFValue("");//清空,重置

System.out.println("第"+(i+1)+"个文本框的值已清空重置");

}

}

}

//刷新界面函数

privatevoidmyUpdateUI(){

SwingUtilities.updateComponentTreeUI(this);//添加或删除组件后,更新窗口

JScrollBarjsb=jsp.getVerticalScrollBar();//得到垂直滚动条

jsb.setValue(jsb.getMaximum());//把滚动条位置设置到最下面

}

}

//自定义一个JPanle类

classMyJPanelextendsJPanel{

publicJTextFieldjtf;

publicMyJPanel(intindex){

JLabeljl=newJLabel("字符"+index);

jtf=newJTextField(15);

add(jl);

add(jtf);

}

//获取文本框的值

publicStringgetJTFValue(){

returnjtf.getText();

}

//设置文本框的值

publicvoidsetJTFValue(Stringvalue){

jtf.setText(value);

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。