`
fansfirst2008
  • 浏览: 97904 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

被JDialog卡住了一天

阅读更多

前言:

    目前自己在寫一個動態畫面生成的小模塊,遇到的一個問題!

   

問題描述:

     自己實現JDialog子類,子類里面組合了一些JComponent做用戶輸入,關閉JDialog的時候,一直無法成功獲得用戶輸入的數據!

 

解決歷程:

     剛開始一直是NullPointerException! 然后跟蹤調試,發現沒有值,甚是奇怪!

思維歷程:

     對于swing編程,自己理論上有兩個關注點:1,swing組件樹,swing 組件只會存在于在組件樹中的某一個節點

     2,swing的edt單線程模型,如果阻塞的話,將讓應用程序看起來很卡!由于目前程序比較原始,所以檢查這兩點很

     容易!

          剛開始思考是不是線程引起的問題,比如內存可見性等!這個時候大都是抱著僥幸的心態,像只無頭的蒼蠅一樣亂碰,

    所以結果是不言而喻的!

         后來發現,肯定的是因為自己對swing的JDialog組件模型理解有誤,不正確使用造成的!

        于是采用學習式原型簡化方法,忽略掉所以業務細節,用簡單swing程序模擬出目前的狀況,然后再來尋求問題的答案!

     再解決簡化的問題后,再去解決業務中的問題,就容易了!

問題解決辦法:

      1,對于非模態JDialog,在需要返回結果的情況下,需要采用觀察者模式,來解決問題

      2,對于模態JDialog,可以按照程序流程,讓新建的dialog對象返回

事后總結

     由于對于JDialog的模態,這個概念理解不正確,造成程序編寫異常!在JDialog非模態形態下,用模態的思考方式來解決問  題,所以解決不了問題!

     雖然swing組件的模型很簡單mvc,但是具體概念也要理解清楚,才能解決問題

     成功解決問題的方法也很重要!

   

分享到:
评论

相关推荐

    jDialog是一款轻量级的jQuery模态对话框插件

    jDialog是一款基于jQuery的轻量级模态对话框插件,专为网页开发者设计,提供了一种简洁而高效的方式来创建各种弹出式对话框。其核心特性在于其轻巧的体积,压缩后仅1KB,这使得它在网页性能优化方面具有显著优势,...

    java 自定义JDialog实现模态窗口

    模态对话框(Modal Dialog)是一种特殊的对话框,它会阻止用户与对话框背后的父窗口进行交互,直到该对话框被关闭。这在需要用户确认信息或输入数据时非常有用。 要创建一个自定义模态`JDialog`,我们需要以下步骤...

    基于jquery的 对话框插件jDialog

    `jDialog`是一款基于jQuery的对话框插件,它提供了丰富的功能和自定义选项,使得创建各种类型的对话框变得简单而直观。 1. **jQuery基础** `jQuery`是一款轻量级的JavaScript库,它简化了DOM操作、事件处理、动画...

    jquery.jdialog.1.1_1

    而jQuery.jDialog则是基于jQuery的一个轻量级对话框插件,它提供了一种高效、灵活的方式来创建弹出式对话框,为用户交互提供了丰富的可能性。本文将深入探讨jQuery.jDialog 1.1_1版本的核心特性、使用方法以及应用...

    jquery.jDialog

    `jQuery.jDialog`是一个基于jQuery库的对话框插件,以其美观和功能丰富而受到开发者们的青睐。它允许开发者轻松地在网页中创建弹出式对话窗口,用于显示信息、确认操作、输入数据等各种交互场景。通过这个插件,可以...

    JDialog

    JDialogJDialog

    简单的jQuery浮动窗口插件jDialog.zip

    一个页面同时只能显示一个窗口; 窗口显示需要指定一个页面上的对象做为窗口显示做置定位,这样窗口会出现在哪个东西的下面,就像下拉列表一样. 不能拖动(我们不需要这样的功能); 可以点击窗口之外的任意区域来...

    比较全面的JDialog 和 JOptionPane的demo

    1. 创建一个`JDialog`实例,传入`null`表示创建一个无父窗口的对话框,或者传入一个`JFrame`或`JDialog`实例作为其父窗口。 2. 添加内容到对话框,这可能包括标签、文本框、按钮等`JComponent`实例。 3. 设置对话框...

    JAVA初级编码——继承JDialog, 利用JTextArea显示文档中的内容

    JDialog是Java Swing库中的一个组件,它用于创建独立于主应用程序窗口的对话框。而JTextArea则是一个多行文本输入组件,适合用来展示或编辑大量文本数据。 首先,我们来深入理解JDialog。JDialog是JFrame的子类,...

    java swing-JDialog的使用

    JDialog 是 Java Swing 库提供的一个用于创建对话框窗口的组件,可以在应用程序中显示模态或非模态的自定义对话框。

    JFrame实现JDialog的效果,实现模式窗口

    本教程将深入探讨如何使用`JFrame`来模拟`JDialog`的效果,实现一个模式窗口。 首先,我们需要了解`JDialog`的基本特性。`JDialog`是依赖于父窗口(通常是`JFrame`)的,它可以在父窗口之上显示,可以设置为模态或...

    JDialog—一个非常优秀的的开源JS弹出框

    JDialog是一个简单易用但是功能强大的开源JS弹出窗口,具有很强的扩展性和兼容性,兼容IE6.0,目前版本1.2. 1. 包括锁屏对象JDialog.lock, 提示工具 JDialog.tip, 确认框 JDialog.confirm 弹出窗口 JDialog.win 比...

    jQuery多种类型自定义对话框插件jDialog源码.zip

    其中,jDialog是一款基于jQuery的自定义对话框插件,它提供了多种对话框样式和功能,极大地增强了网页的用户体验。本文将深入探讨jDialog的源码结构、核心功能和实际应用。 一、jDialog概述 jDialog是一款轻量级的...

    blackfox-JDialog-master_java_

    在Java编程语言中,`JDialog`是Java Swing库中的一个关键组件,它用于创建对话框,这是一种特殊的窗口,通常用来向用户展示信息或者获取用户的输入。`JDialog`类是`java.awt.Dialog`的子类,专为Swing应用程序设计,...

    jpopupwin 继jdialog之后改进版

    JPopupWin是针对Java Swing中的JDialog组件进行优化和增强的一个版本,旨在提供更美观、功能更丰富的对话框体验。 在Java编程中,JDialog是一个用于创建模态或非模态对话框的组件,它是JFrame的子类。它通常用来...

    多种类型自定义对话框插件jDialog.zip

    `jDialog`插件就是一个这样的工具,专门用于创建基于jQuery的多种类型的自定义对话框,它具有轻量级、易用且功能丰富的特点。 首先,让我们深入了解一下jQuery。jQuery是一个广泛使用的JavaScript库,它的主要目标...

    详解Java编程JDialog窗体的用法及实例

    JDialog 窗体的功能是从一个窗体中弹出另一个窗体,就像是在使用浏览器时弹出的确定对话框一样。 JDialog 窗体和 JFrame 窗体类似,在使用时也需要调用 getContentPane() 方法将窗体转换为容器,然后在容器中设置...

    Java Swing中JDialog实现用户登陆UI示例

    其中,JDialog 是一个常用的对话框组件,经常与 JOptionPane 配合使用来提供模态或非模态对话框。下面,我们将详细介绍如何使用 JDialog 在 Java Swing 中实现用户登录 UI。 JDialog 的基本概念 JDialog 是一个...

    Scrollable JDialog Example:可滚动 JDialog 示例-开源

    可滚动 JDialog 示例。 许可证: ---------- 本项目中提供的所有程序/软件均在 APACHE LICENSE, VERSION 2.0 下发布。 可以在此处找到许可证详细信息:https://www.apache.org/licenses/LICENSE-2.0。 本许可的某些...

Global site tag (gtag.js) - Google Analytics