Java实现点击一个Jlabel增加一个Jlabel的小功能

当界面生成以后,自己想做一个点击一个Jlabel增加一个Jlabel,即类似于QQ的添加好友以后可以及时的加进一个好友。自己做了好久,发现不能及时刷新。在网上查了一下,然后自己研究了一小会。发现需要validate这个函数重新布局。写了一个这个小功能。

package qq.client.tools;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;@SuppressWarnings("serial")
public class ButtonFrame extends JFrame{
      public ButtonFrame() {//构造函数
      buttonPanel = new JPanel();//创建一个jpanel
      this.setSize(200, 500);//设置窗口的大小
      makeButton();  //调用函数

      this.add(buttonPanel);
 }

 public void makeButton() {
     JLabel buttonFather = new JLabel("I‘m father");//创建一个按钮
     buttonFather.addMouseListener(new MouseListener() {
    public void mouseReleased(MouseEvent e) {
    }

    @Override
    public void mousePressed(MouseEvent e) {
    }
    public void mouseExited(MouseEvent e) {
    }
    public void mouseEntered(MouseEvent e) {
    }
    public void mouseClicked(MouseEvent e) {
        addButton(e);
    }
});
    buttonPanel.add(buttonFather);
 }
 private void addButton(MouseEvent e) {
  JLabel buttonSon = new JLabel("I‘m son");//创建一个标签
  buttonPanel.add(buttonSon);//添加到面板
  this.validate();
 }
 private JPanel buttonPanel; public static void main(String[] args) {
  new ButtonFrame().setVisible(true);

 }
}

跟删除Jlabel一样,没有用那个函数需要自己刷新界面才会出现增加Jlabel。

时间: 2024-08-04 17:54:27

Java实现点击一个Jlabel增加一个Jlabel的小功能的相关文章

在XMPP的JAVA开源实现Openfire中,增加LBS 附近的人功能

1. XMPP协议 与 Openfire XMPP协议是IM领域的标准协议了,具体可参考  http://xmpp.org   及RFC6120,RFC6121,RFC6122等相关文档. http://xmpp.org/xmpp-protocols/ XMPP协议实现,开源的也很多,server端可参考 http://xmpp.org/xmpp-software/servers/    client可以参考 http://xmpp.org/xmpp-software/clients/    l

android源码中,在系统多媒体数据库中增加一个字段

由于项目需求,在系统多媒体管理数据库里的存储图像文件的表中需要新增加一个字段,源码在:项目\packages\providers\MediaProvider\MediaProvider.java下,在updateDatabase()方法里,你会发现images表格是由files创建的一个视图,于是,在files的创建里增加了一个字段,如下: .... db.execSQL("CREATE TABLE files (" + "_id INTEGER PRIMARY KEY AU

通达OA 在工作流中增加根据流水号查询其他工作流的一个小功能

前段时间帮朋友实现的一个小功能,今天再整理一下.要实现的功能其实也很简单,就是在一个工作流里能查看到另一个管理的工作流里的内容.流程多了,各流程之间也会有些关联,原来朋友做的只是在表单里输入要查询的流水号,要查询的人需要按照这个流水号在工作流查询里打开这个功能再查询,点击.打开这些动作说来简单但是也是增加了一些麻烦.为了解决这个小小的问题,我在表单里简单改造了一些,增加了一个查询的链接,这样每次查询的时候点击一下就OK了,技术就是为人服务的么. 需要说明的是:这两个流程是有关联的,而不能任意查所

Android系统移植与调试之------->增加一个双击物理按键打开和关闭闪光灯并将闪光灯状态同步到下拉菜单中

最近有一个客户有这样的需求: 1.在[设置]--->[无障碍]中添加一个开关按钮. 如果打开开关的话,双击某个物理按键的时候,打开闪光灯,再双击该物理按键的时候,关闭闪光灯. 如果关闭开关的话,双击该物理按键的时候,不做任何处理. 2.打开关闭闪光灯的状态,在下拉菜单中也要同步. 如下图所示的效果: 当打开上面添加的开关后,如果双击POC键(POC键是我们公司自定义的一个物理按键)的时候,就打开闪光灯,并将下拉菜单中的闪光灯图标点亮,如下图所示 如果再次双击POC键(POC键是我们公司自定义的一

《点击JTable的某一个行,在另一个JPanel显示其相对应内容的功能实现》

如下图,目标是,当我点击JTable的某一行(JTable的内容来自左边的文件),在GUI的黄色框,将要显示selected行的最后一个int数据. 简短提一下为什么写这篇东西:在功能实现过程中遇到了挺多的有意义的困难,是课上老师没有讲过的,接下来一个个列出. 问题一:第一个遇到的问题是不熟悉ListSelectionListener的用法,更不知道ListSelectionModel的用法,认为ListSelectionModel是个可有可无的选择(说出来还有点不好意思呢). 这里就讲一下Li

死磕 java线程系列之自己动手写一个线程池

欢迎关注我的公众号"彤哥读源码",查看更多源码系列文章, 与彤哥一起畅游源码的海洋. (手机横屏看源码更方便) 问题 (1)自己动手写一个线程池需要考虑哪些因素? (2)自己动手写的线程池如何测试? 简介 线程池是Java并发编程中经常使用到的技术,那么自己如何动手写一个线程池呢?本文彤哥将手把手带你写一个可用的线程池. 属性分析 线程池,顾名思义它首先是一个"池",这个池里面放的是线程,线程是用来执行任务的. 首先,线程池中的线程应该是有类别的,有的是核心线程,有

奇淫怪巧之给Delphi的PrintDialog增加一个页码选定范围打印的Edit 转

奇淫怪巧之给Delphi的PrintDialog增加一个页码选定范围打印的Edit 在Delphi中使用PrintDialog打印对话框的时候,这个控件有三个选项,就是PrintRang那个属性的三个选项,其中有一个选项三,让我们自定义选择页码范围来打印.但是比较蛋疼的是,这个地方选中了之后啥子效果都没有.无法制定自己的页码范围,很是蛋疼.这里实际上应该要有一个Edit之类的编辑框的,这样可以让用户输入1,2,3-4之类的页码范围来整就比较人性化了.起初以为是自己没有指定某属性神马的导致,于是在

SqlServer给一个表增加多个字段语法

添加字段语法 alter table table_name add column_name +字段类型+ 约束条件 给一个表增加多个字段: use NatureData go alter table XunHu add MaleCount varchar(50) null, FemaleCount varchar(50) null, SubadultCount varchar(50) null, LarvaeCount varchar(50) null, TraceType varchar(50

Java FX8_第一篇_编写第一个Java FX Application

所有的Java FX程序必须继承自Application类且必须覆写start( )方法,而start ( )方法的参数是一个stage(继承Application类且使用Stage类必须导入javafx.application.Application 和 javafx.stage.Stage).stage实际上就是一个窗体,也就是场景Scene的容器(stage的观感取决于程序运行环境,也就是操作系统).代码如下: ---------------------------------------