首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

java AWT中的.add()在actionPerformed之后不起作用

在Java AWT中,.add()方法用于向容器中添加组件。在actionPerformed方法之后调用.add()方法可能不会立即生效,这是因为AWT使用事件驱动模型,即组件的添加和布局操作通常在事件处理完成后才会生效。

当调用.add()方法时,组件会被添加到容器的组件列表中,但是容器的布局管理器可能需要重新计算和调整组件的位置和大小。这个过程通常在事件处理完成后自动触发,以确保组件的正确布局。

如果希望在调用.add()方法后立即生效,可以使用容器的.revalidate()方法和.repaint()方法。.revalidate()方法会触发容器的重新布局,而.repaint()方法会触发容器的重绘,以显示新添加的组件。

以下是一个示例代码:

代码语言:txt
复制
import java.awt.*;
import java.awt.event.*;

public class MyFrame extends Frame implements ActionListener {
    private Button button;

    public MyFrame() {
        button = new Button("Click me");
        button.addActionListener(this);
        add(button);
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == button) {
            Label label = new Label("New Label");
            add(label);
            revalidate();
            repaint();
        }
    }

    public static void main(String[] args) {
        MyFrame frame = new MyFrame();
        frame.setLayout(new FlowLayout());
        frame.setSize(300, 200);
        frame.setVisible(true);
    }
}

在上面的示例中,当点击按钮时,会在窗口中添加一个新的标签。在actionPerformed方法中,我们先创建一个新的标签并调用.add()方法将其添加到窗口中,然后调用.revalidate()方法和.repaint()方法使其立即生效。

请注意,以上示例只是演示了如何在.actionPerformed方法中使用.add()方法后立即生效,实际应用中可能需要根据具体情况进行适当的调整和处理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • TextField和Graphics类

    与该事件对应的事件类是java.awt.event.ActionEvent 用来处理ActionEvent事件是实现了java.awt.event.ActionListener接口的类的对象,ActionListener...接口定义有方法: public void actionPerformed(ActionEvent e) 实现该接口的类要在该方法中添加处理该事件(Action)的语句 使用addActionListener...方法在方法中可以获取该对象的信息,并做相应的处理 import java.awt.*; import java.awt.event.*; public class TFActionEvent {...,我需要将TFFrame类中的tf相关信息传到TFActionListener中,这样才能使用tf对象的一些方法,比方说获取其文本框的内容,修改其文本框的内容等等,但是tf是另一个类的对象,并不是TFActionListener...类中的对象,如何获取呢?

    91120

    Java学习之AWT GUI编程

    AWT是窗口框架,它从不同平台的窗口系统中抽取出共同组件 , 当程序运行时,将这些组件的创建和动作委托给程序所在的运行平台 。...使用AWT创建的图形界面应用和所在的运行平台有相同的界面风格 , 比如在 Windows 操作系统上,它就表现出 Windows 风格 ; 在 UNIX 操作系统上,它就表现出UNIX 风格 。...0x02 AWT体系 所有和 AWT 编程相关的类都放在 java.awt 包以及它的子包中, AWT 编程中有两个基类 :Component和 MenuComponent。...在GUI事件处理机制中涉及到4个重要的概念需要理解: 事件源(Event Source):操作发生的场所,通常指某个组件,例如按钮、窗口等; 事件(Event):在事件源上发生的操作可以叫做事件,GUI...注册监听:把某个事件监听器(A)通过某个事件(B)绑定到某个事件源(C)上,当在事件源C上发生了事件B之后,那么事件监听器A的代码就会自动执行。

    1.5K30

    Java-单机版的书店管理系统(练习设计模块和思想_系列汇总)

    6、综合应用JSE所学习的知识 7、在应用中合理使用集合框架 8、在应用中综合使用swing的常用组件 9、基本的表现层的实现机制 10、IO流和文件的基本操作 11、培养良好的Java...面向接口编程啊,表现层,逻辑层,数据层啊,这些以前用都没用过的,那时候完全不懂得怎么回事,不过在自己写了之后,感觉嘛、也就那么回事。...void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItem1ActionPerformed(evt...,在写了库存模块之后改了一点,增加了和库存模块的串接: 逻辑层接口InMainEbo: package cn.hncu.bookStore.in.business.ebo; import java.util.List...帮助界面: 当用户文件被删除了之后,就只能通过这个账号登录了。 ? 管理员登录后的欢迎界面: 这个是管理员登录的欢迎界面,可以看到所有的菜单项都被点亮了的。 ?

    1.6K10

    已解决:`java.awt.geom.NoninvertibleTransformException:在Java2D中无法逆转的转换`

    在Java2D编程中,图形变换(如旋转、缩放和翻译)是常见的操作。然而,在某些情况下,这些变换可能会导致java.awt.geom.NoninvertibleTransformException异常。...一、分析问题背景 java.awt.geom.NoninvertibleTransformException是Java2D图形处理中常见的异常之一,通常在尝试获取AffineTransform对象的逆变换时抛出...在实际开发中,可以通过检查变换矩阵的有效性来防止意外的变换操作导致异常。...五、注意事项 在编写Java2D代码时,开发者应注意以下几点,以避免NoninvertibleTransformException: 避免使用零缩放因子:在缩放操作中,确保任何轴的缩放因子都不为零。...通过本文的分析和示例,读者应该能够理解并解决java.awt.geom.NoninvertibleTransformException异常,避免在Java2D开发中遇到类似的问题。

    8610

    java GUI 快速入门

    java 中编写 GUI 有两中工具包,分别为 AWT、Swing。 Swing 是 AWT 的拓展,Swing 具有比 AWT 丰富的组件和方法。...import java.awt.*; import javax.swing.*; 一个 awt 示例 下面是一个窗口示例 import java.awt.*; public class MyFrame...事件 java 中,事件分为三个方面描述, 事件源:发生事件的对象 事件处理:委托事件处理模型 事件监听者:负责处理事件 ? 首先B监听A,设置监听的内容,并设置响应内容。...package com.company; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener...文本框有两个常用事件 ActionEvent事件 在文本框按回车键时引发 注册:addActionListener() 接口:ActionListener 方法:public void actionPerformed

    1.7K40

    Java-GUI编程之Swing组件

    首先要明确的是不管是菜单条中的菜单项还是工具条中的工具按钮,最终肯定是需要点击来完成一些操作,所以JToolBar以及JMenu都提供了更加便捷的添加子组件的方法add(Action a),在这个方法的内部会做如下几件事...: 创建一个适用于该容器的组件(例如,在工具栏中创建一个工具按钮); 从 Action 对象中获得对应的属性来设置该组件(例如,通过 name 来设置文本,通过 lcon 来设置图标) ; 把Action...监听器注册到刚才创建的组件上; 案例: ​ 使用JToolBar组件完成下图效果: 演示代码: import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent...AWT中的 FileDialog 基本相似,也是用于生成"打开文件"、"保存文件 "对话框。....*; import java.awt.*; import java.awt.event.ActionEvent; public class MessageDialogTest { JFrame

    2.3K20

    java高级语言程序设计_高级程序设计语言包括

    GUI的各种元素(如:窗口,按钮,文本框)由Java类实现。 使用AWT所涉及的类一般在 java.awt 包及其子包中。 Container 和 Component 是AWT中的两个和心态。...Java的GUI提供的对象都存在 java.Awt 和 javax.Swing 两个包中. * * java.Awt:Abstract Window ToolKit(抽象 窗口工具包) * 需要调用本地系统方法实现功能....属重量级控件 (跨平台不够强) * * java.Swing:在AWT的基础上,建立的一套图形界面系统,器重提供了更多的组件, * 而且完全由java实现,增强了移植性,属于轻量级控件....ActionListener接口定义有方法: public void actionPerformed(ActionEvent e) 实现该接口的类主要在该方法中添加处理事件(Action)的语句。...actionPerformer 方法在方法中可以获取该对象的信息,并做相应的处理。

    82810

    Java程序设计(高级及专题)- GUI「建议收藏」

    GUI的各种元素(如:窗口,按钮,文本框)由Java类实现。 使用AWT所涉及的类一般在 java.awt 包及其子包中。 Container 和 Component 是AWT中的两个和心态。...Java的GUI提供的对象都存在 java.Awt 和 javax.Swing 两个包中. * * java.Awt:Abstract Window ToolKit(抽象 窗口工具包) * 需要调用本地系统方法实现功能....属重量级控件 (跨平台不够强) * * java.Swing:在AWT的基础上,建立的一套图形界面系统,器重提供了更多的组件, * 而且完全由java实现,增强了移植性,属于轻量级控件....ActionListener接口定义有方法: public void actionPerformed(ActionEvent e) 实现该接口的类主要在该方法中添加处理事件(Action)的语句。...actionPerformer 方法在方法中可以获取该对象的信息,并做相应的处理。

    55320
    领券