Java - 替换 JFrame 中的组件

2024-04-12

我正在努力使用 java GUI - 提前感谢您的帮助!我有一个 JFrame,其中有几个组件:按钮(J 按钮)触发动作侦听器,comp这是我试图替换的一个组件JScrollPane其中有一个组件(组件的类型无关紧要,可以是文本字段、表格或任何东西)。

我想触发一个操作 - 删除组件,将新组件放置在与已删除组件相同的位置,然后重新绘制窗口(我使用它来显示不同类型的文本字段和 JTable)。这就是我所拥有的:

JScrollPane sp = new JScrollPane(comp);
this.add(sp, BorderLayout.CENTER);
//this works so far - first time I display this is ok!

private void replace() {
 comp = new Component(...); //name and type of the components is not important
 sp = new JSCrollPane(comp);
 this.remove(sp); //remove old component
 add(sp, BorderLayout.CENTER);
 repaint();
 revalidate();
}

为什么功能不能取代工作?它不做任何事情(它改变了逻辑中的组件,因此如果我访问 comp 的内容,它会被刷新,但它仍然显示旧的)。

我写的有点象征性,因为我的代码很长...感谢您的帮助! 编辑:忘记了我的代码中的一行..


您不必像以前那样尝试删除滚动窗格。

要更改滚动窗格显示的组件,只需进行以下调用:

sp.setViewportView(new Component(...));

调用之后,旧组件将从视图中删除并由新组件替换。

所以你的代码应该看起来像这样:

JScrollPane sp = new JScrollPane(comp);
this.add(sp, BorderLayout.CENTER);

private void replace() {
    comp = new Component(...); //name and type of the components is not important
    sp.setViewportView(comp);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java - 替换 JFrame 中的组件 的相关文章

  • 具有更高可见性的重写方法是良好的实践吗?

    回答这个问题 如何使用 GUI 使用 PaintComponent 初始化 GUI 然后添加基于鼠标的 GUI https stackoverflow com questions 21336141 how to gui using pain
  • Android 2.2 SDK - Droid X 相机活动无法正常完成

    我注意到我在 Droid X 上调用的默认相机活动与我的 Droid 和 Nexus One 上的默认相机活动看起来不同 在 Droid 和 Nexus One 上选择 确定 后 活动将完成 Droid X 有一个 完成 按钮 它将带您返回
  • 使用cameltestsupport进行Camel单元测试,模板始终为空

    我正在用 Camel 做一个简单的单元测试 我想做的就是从文件 在资源下 读取 JSON 内容 将其发送到 Java 类进行验证 这是我试图测试的路线 无论我做什么 模板 我用来发送正文 json 始终为空 这是我的代码 public cl
  • 如何使用 SimpleDateFormat 解析多种格式的日期

    我正在尝试解析文档中的一些日期 用户似乎以类似但不完全相同的格式输入了这些日期 以下是格式 9 09 9 2009 09 2009 9 1 2009 9 1 2009 尝试解析所有这些内容的最佳方法是什么 这些似乎是最常见的 但我想让我困扰
  • 在 HTTP 标头中发送 UTF-8 值会导致 Mojibake

    我想使用 servlet 发送阿拉伯语数据HTTPServletResponse给客户 我正在尝试这个 response setCharacterEncoding UTF 8 response setHeader Info arabicWo
  • 主线程如何在该线程之前运行?

    我有以下代码 public class Derived implements Runnable private int num public synchronized void setA int num try Thread sleep 1
  • 记录骆驼路线

    我的项目中有几个 Camel 上下文 如果可能的话 我想以逆向工程方式记录路线 因为我们希望保持与上下文相关的文档最新 最好的方法是什么 我们倾向于预先实际设计路线 并使用来自EIP book http www eaipatterns co
  • 如何让spring为JdbcMetadataStore创建相应的schema?

    我想使用此处描述的 jdbc 元数据存储 https docs spring io spring integration docs 5 2 0 BUILD SNAPSHOT reference html jdbc html jdbc met
  • Java 服务器-客户端 readLine() 方法

    我有一个客户端类和一个服务器类 如果客户端向服务器发送消息 服务器会将响应发送回客户端 然后客户端将打印它收到的所有消息 例如 如果客户端向服务器发送 A 则服务器将向客户端发送响应 1111 所以我在客户端类中使用 readLine 从服
  • 无法加载或查找主类,可以在命令行中使用,但不能在 IDE 中使用[重复]

    这个问题在这里已经有答案了 在将其标记为重复之前 请先听我说完 我正在尝试使用 gradle 导入一个 java 项目 功能齐全 适用于所有其他笔记本电脑 没有问题 我的项目 100 正常运行 适用于所有其他笔记本电脑 当我的笔记本电脑被重
  • Java - 返回值是否会中断循环?

    我正在编写一些基本上遵循以下格式的代码 public static boolean isIncluded E element Node
  • 在 Spring Boot Actuator 健康检查 API 中启用日志记录

    我正在使用 Spring boot Actuator APIproject https imobilenumbertracker com 拥有一个健康检查端点 并通过以下方式启用它 management endpoints web base
  • 解析输入,除了 System.in.read() 之外不使用任何东西

    我很难找到具体的细节System in read 有效 也许有人可以帮助我 似乎扫描仪会更好 但我不允许使用它 我被分配了一个任务 我应该以 Boolean Operator Boolean 的形式读取控制台用户输入 例如T F 或 T T
  • Linux 上有关 getBounds() 和 setBounds() 的 bug_id=4806603 的解决方法?

    在 Linux 平台上 Frame getBounds 和 Frame setBounds 的工作方式不一致 这在 2003 年就已经有报道了 请参见此处 http bugs java com bugdatabase view bug do
  • JVM:是否可以操作帧堆栈?

    假设我需要执行N同一线程中的任务 这些任务有时可能需要来自外部存储的一些值 我事先不知道哪个任务可能需要这样的值以及何时 获取速度要快得多M价值观是一次性的而不是相同的M值在M查询外部存储 注意我不能指望任务本身进行合作 它们只不过是 ja
  • Java:拆箱整数时出现空指针异常?

    此代码导致空指针异常 我不知道为什么 private void setSiblings PhylogenyTree node Color color throws InvalidCellNumberException PhylogenyTr
  • 挂钩 Eclipse 构建过程吗?

    我希望在 Eclipse 中按下构建按钮时能够运行一个简单的 Java 程序 目前 当我单击 构建 时 它会运行一些 JRebel 日志记录代码 我有一个程序可以解析 JRebel 日志文件并将统计信息存储在数据库中 是否可以编写一个插件或
  • JSON 到 hashmap (杰克逊)

    我想将 JSON 转换为 HashMapJackson http jackson codehaus org 这是我的 JSON String json Opleidingen name Bijz trajecten zorg en welz
  • Java &= 运算符应用 & 或 && 吗?

    Assuming boolean a false 我想知道是否这样做 a b 相当于 a a b logical AND a is false hence b is not evaluated 或者另一方面 这意味着 a a b Bitwi
  • 嵌入式 Jetty - 以编程方式添加基于表单的身份验证

    有没有一种方法可以按如下方式以编程方式添加基于表单的身份验证 我用的是我自己的LdapLoginModule 最初我使用基本身份验证并且工作正常 但现在我想在登录页面上进行更多控制 例如显示徽标等 有没有好的样品 我正在使用嵌入式 jett

随机推荐

  • 评估项目“:app”时出现问题。 > 无法对 null 对象调用 getAbsolutePath() 方法

    我面临着 React Native 构建的问题 无法进一步进行 并且在任何地方都找不到解决方案 这是我的 build gradle 文件 import org apache tools ant taskdefs condition Os b
  • 如何在cmd中显示阿拉伯字母

    任何人都可以提供我的解决方案以在cmd中显示阿拉伯字母 我尝试在 cmd 中使用 chcp 1256 和 chcp 62001 但它没有正确显示阿拉伯字母 但是当我在互联网上搜索时 我发现有人说有解决方案 但它需要 Windows 95 或
  • 如何使用 Polars 按值列表过滤 df?

    我有来自 csv 的 Polars df 我尝试按值列表过滤它 list 1 2 4 6 48 df pl read csv bm dat sep new columns cid1 cid2 cid3 lazy filter pl col
  • 有没有办法在 tomcat6 中强制执行部署顺序?

    我的 webapp 文件夹中有 3 场战争 其中两个是建立在第三个的服务之上的 我处于测试环境中 即我无法控制他们的架构 所以我无法改变任何事情 所以 Question 有没有办法在 tomcat 中强制执行部署顺序 我遇到了一个问题her
  • Android:使用 Google API 进行实时导航,还是与 Google 地图通信?

    我知道以前有人问过这个问题 但我找不到满意的答案 是否可以从 Android 可用的 Google API 获取实时方向更新 Google Maps API 仅提供视觉功能 但不提供任何方向功能 Google Directions API
  • 如何将 javax.xml.transform.Source 转换为 InputStream?

    我怎样才能转换javax xml transform Source进入输入流 实施Source is javax xml transform dom DOMSource Source inputSource messageContext g
  • MSVC constexpr 函数“xyz”无法生成常量表达式

    我创建了一个函数 它将多个较小的值连接成一个较大的值 同时保留值的二进制表示 例如构建一个int argb来自多个unsigned char r g b a 我知道我也可以通过改变值来实现这一点 但这不是这个问题的问题 但是 如果我使用该函
  • Rails:用空对象模式替换 try

    在我的大多数应用程序中 我都有一个current user方法 为了避免在类似情况下出现异常current user name where current user is nil rails 提供了try方法 问题是我需要记住使用try无论
  • 声明普通类和类模板的静态数据成员

    我读到在源文件中定义静态数据成员的原因是因为如果它们位于头文件中并且多个源文件包含头文件 定义将多次输出 我可以理解为什么这对于静态常量数据成员来说是一个问题 但是为什么这对于静态数据成员来说是一个问题呢 我不太确定我完全理解如果定义写在头
  • 如何在django过滤器中做小于或等于和大于等于?

    如何在django过滤器中做小于或等于和大于等于 就像 我想获得周围的价值 10 lt val lt 50在 Django 视图中 为此 我在 sql 中使用了一些查询 如下所示 select count from table name w
  • Linux 中的直接内存访问

    我正在尝试直接访问嵌入式 Linux 项目的物理内存 但我不确定如何最好地指定内存供我使用 如果我定期启动设备并访问 dev mem 我就可以轻松地读写任何我想要的位置 然而 在这里 我访问的是可以轻松分配给任何进程的内存 我不想做 我的
  • Google Dataproc 上的 Spark UI 位于何​​处?

    我应该使用什么端口来访问 Google Dataproc 上的 Spark UI 我尝试了端口 4040 和 7077 以及我发现使用的许多其他端口netstat pln 防火墙配置正确 Dataproc 在 YARN 之上运行 Spark
  • 注册 COM 接口的实现

    我是 COM 编程新手 我已经准备好了一个 COM 对象 以及关联的 IClassFactory 但我不太清楚如何注册生成的 DLL 以供其他程序使用 我也不清楚需要携带的 GUID 数量 我尝试注册的 COM 对象实现了 IAudioSe
  • 如何使用 Flutter 编写带有要点的段落?

    使用 HTML 我可以向段落添加项目符号 如下所示 ul li example li li example li li example li ul 如何在 Flutter 中编写要点形式 new Text 如果您不想下载另一个库 例如 fl
  • 使用 sed 仅打印每个段落的第一个单词

    我想知道如何用 sed 单行打印出每个段落的第一个单词 在本例中 段落由 2 个换行符后面的文本定义 e g This is a paragraph with some text Some random text that is not r
  • Xamarin:使用布局的启动屏幕

    我正在尝试为我的 Android 应用程序创建启动屏幕 如此链接所示http developer xamarin com guides android user interface creating a splash screen http
  • 如何在 JLayeredPane 上设置背景颜色?

    我很好奇为什么在 JLayeredPane 上调用 setBackground Color 似乎并没有真正设置背景颜色 我猜这与 JLayeredPane 由于某种原因必须具有透明背景有关 不管怎样 这里有一些代码显示了这个问题 这是在 M
  • ajax请求后如何更改URL?

    我有一个菜单 其中包含一些更新 div 的链接content并执行该函数onSuccess加载后 li Ajax ActionLink Home Index home li li Ajax ActionLink Download Index
  • 通过编辑 AOSP 将 Android 导航栏放在侧面

    我想通过编辑 AOSP 将导航栏 具有后退 主页和菜单等系统软键 而不是导航抽屉 放在 右侧 侧 如下所示 Status bar always N Layout with background drawable a v Title Acti
  • Java - 替换 JFrame 中的组件

    我正在努力使用 java GUI 提前感谢您的帮助 我有一个 JFrame 其中有几个组件 按钮 J 按钮 触发动作侦听器 comp这是我试图替换的一个组件JScrollPane其中有一个组件 组件的类型无关紧要 可以是文本字段 表格或任何