展开全部

效果图

参考代码import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

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

public class DemoFrame1 extends JFrame implements ActionListener  {

JPanel jpc ;//存放组件的面板

JScrollPane jsp;//滚动面板

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

int index = 1;//开始的字符

//构造函数

public DemoFrame1() {

jpc = new JPanel();

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

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

add(jsp);

jbAdd = new JButton("增加");

jbAdd.addActionListener(this);

jbRemove = new JButton("删除");

jbRemove.addActionListener(this);

jbReset = new JButton("重置");

jbReset.addActionListener(this);

JPanel jps = new JPanel();

jps.add(jbAdd);

jps.add(jbRemove);

jps.add(jbReset);

add(jps,BorderLayout.SOUTH);

setTitle("增删组件");

setDefaultCloseOperation(EXIT_ON_CLOSE);

setSize(300, 220);//大小

setLocationRelativeTo(null);//居中

}

//main函数

public static void main(String[] args) {

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

}

@Override

public void actionPerformed(ActionEvent e) {

JButton jb = (JButton) e.getSource();

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

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

index++;//自加1

myUpdateUI();//刷新界面

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

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

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

index-=1;

myUpdateUI();

}

}else if(jb==jbReset) {

for (int i = 0; i

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

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

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

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

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

}

}

}

//刷新界面函数

private void myUpdateUI() {

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

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

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

}

}

//自定义一个JPanle类

class MyJPanel extends JPanel{

public JTextField jtf;

public MyJPanel(int index) {

JLabel jl = new JLabel("字符"+index);

jtf = new JTextField(15);

add(jl);

add(jtf);

}

//获取文本框的值

public String getJTFValue() {

return jtf.getText();

}

//设置文本框的值

public void setJTFValue(String value) {

jtf.setText(value);

}

}

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

  1. java 枚举添加属性_关于Java 枚举类型的自定义属性

    package com.cpic.test; /** * 关于枚举类型自定义属性 * */ public enum Provious { ANHUI("皖", 1),BAIJING ...

  2. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  3. vue 动态添加click_vue,在模块中动态添加dom节点,并监听

    vue向数组中动态添加数据 vue中数据更新通过v-model实现,向数组中添加数据通过push()实现,向shortcuts数组中动态添加newShortcut对象中的title和action th ...

  4. java图书信息添加代码_图书 - java代码库 - 云代码

    [java]代码库package com.mahe; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt. ...

  5. java菜单如何点解_【Java】详解菜单组件

    在这篇文章中,笔者会介绍Java图形界面编程中菜单组件的用法.关于菜单组件,因为java存在AWT编程和Swing编程,所以菜单组件也存在AWT菜单和Swing菜单.因为Swing组件使用的比较多,所 ...

  6. java ee各类组件_在Java EE组件中使用骆驼路线

    java ee各类组件 从现在开始我一直在与Camel合作,我真的很喜欢它的简单性. 在Java EE之上使用它一直是一个挑战,我最近发表了一篇关于如何做到这一点的演讲,而在Java EE中引导Cam ...

  7. java jbutton边框颜色_在Java Swing中更改JButton的边框颜色,以保留插图

    我想更改Java Swing中JButton组件的边框颜色. 我尝试了以下方法: package com.example.test; import java.awt.Color; import jav ...

  8. java如何添加进程_如何创建一个进程,如何进程调用进程

    java一般用线程就够了,多进程优势在于每个进程互不干扰,劣势在于太耗费内存,任何事情都不是绝对的,在编写Java程序时,有时候需要在Java程序中执行另外一个程序. 1.启动程序 Java提供了两种 ...

  9. java date加月_关于java:在日期中添加月份

    我想根据用户选择的持续时间添加月数. 我已经编写了以下代码,它采用当前日期并根据用户选择的持续时间添加月份,但我希望它采用从前端传递的开始日期并根据持续时间添加月份. String le=ra.get ...

  10. java给一个类添加属性_给java虚拟机增加一个属性,java -D

    java文件: public static void main(String[] args) { System.out.println(System.getProperty("log_pat ...

最新文章

  1. 《移动App测试的22条军规》—App测试综合案例分析23.7节测试微信App对于操作系统特性的支持程度...
  2. 一文看清这些年自监督和无监督的进展
  3. 恶意npm包收集用户IP等信息并在GitHub传播
  4. SqlMap常用参数(一)
  5. 不到 100 行 Python 代码徐峥变葛优
  6. 本地html调试java接口_solr源码通过idea进行本地调试
  7. jupyter notbook远程连接配置(Ubuntu16.04)
  8. 使用Python语言实现凯撒密码的加密和解密
  9. excel表格打开是乱码怎么办?
  10. Java实现简易版的【图书管理系统】
  11. 若依框架前端Vue项目分析实战
  12. android 动画中插值器Interpolator详解
  13. 计算机系统与itunes不兼容,解决XP系统安装iTunes的要求更改更高版本的不兼容情况...
  14. 番外9福冈·狂野老司机告诉你如果装AI·1· ——混合现实科幻《地与光》
  15. c#加粗代码_如何使用C#加粗Excel工作表中特定行或单元格的字体?
  16. 微博发布头条文章失去文本样式以及图片
  17. matlab2014simulink中的三相晶闸管整流桥怎么找_哈尔滨有源滤波组件HPD2000-100-4L坏了怎么办 - 哈尔滨照明工业...
  18. 【愚公系列】2022年08月 微信小程序-(rich-text)富文本和(text)文本的详解
  19. WIFI转串口无线传输模块,个人体会
  20. 丐帮洪七公和郭靖在路上碰到了黄老邪和老毒物

热门文章

  1. 一条SQL语句实现二进制到十进制的转换
  2. 小图拼接大图MATLAB实现
  3. 关于打印机共享的注意事项——又被叫去修电脑了
  4. Ubuntu 中sendmail 的安装、配置与发送邮件的具体实现
  5. 使用 Cordova 打包 app
  6. MySql UNIX_TIMESTAMP和FROM_UNIXTIME函数讲解
  7. 005-算法-分治法
  8. 为js和css文件自动添加版本号
  9. 关于 uniqueidentifier
  10. Ubuntu9.10安装常用软件