当前位置: 首页 > 知识库问答 >
问题:

JFrame-JDialog通信

娄森
2023-03-14

我有一个JFrame主窗口,里面有一个Register按钮,点击Register按钮,弹出JDialog窗口。

public void mouseClicked(MouseEvent e) {
                Reg new1=new Reg(users);
                new1.setVisible(true);
            }

JDialog窗口有两个按钮->Register、Cancel,这两个按钮都必须做一些事情并关闭对话框窗口。

这就是我试过的。在Reg(对话框窗口)中-->btn取消:

public void mouseClicked(MouseEvent e) {
                        dialog.dispose();
                        System.out.println("Reg disposed by cancel button");
                    }

共有1个答案

沈飞舟
2023-03-14

您需要某种方法让框架确定对话框是如何关闭的

// Why are you using a `MouseListener` on buttons??
// User use keyboards to, use an ActionListener instead
public void mouseClicked(MouseEvent e) {
    Reg new1=new Reg(users);
    new1.setVisible(true);
    switch (new1.getDisposeState()) {
        case Reg.OK:
            // Clicked Ok
            break;
        case Reg.CANCEL:
            // Clicked cancel or was closed by press [x]
            break;
    }
}

然后在reg类中,需要维护关于状态的信息······

public class Reg extends JDialog {
    public static final int OK = 0;
    public static final int CANCEL = 1;

    private int disposeState = CANCEL;

    //...

    public int getDisposeState() {
        return disposeState
    }

    public void setDisposeState(int state) {
        disposeState = state;
    }

然后你改变状态

// Why are you using a `MouseListener` on buttons??
// User use keyboards to, use an ActionListener instead
public void mouseClicked(MouseEvent e) {
    setDisposeState(CANCEL);
    dialog.dispose();
    System.out.println("Reg disposed by cancel button");
}
    null
 类似资料:
  • 我在我的项目中添加了一个jDialog Swing表单,如图所示: 现在我想从jtextField获取到父JFrame的值,当我关闭这个JDialog时,我搜索了一下它,发现: 但是编译器告诉我在我的JDialog中没有名为

  • 问题内容: 我创建了一个模态JDialog框,上面带有一个自定义图形和一个JButton。当我单击JButton时,JDialog框应关闭并返回一个值。 我在父JFrame中创建了一个名为setModalPiece的函数,该函数接收一个值并将其设置为本地JFrame变量。 问题是该功能从JDialog框不可见(即使JDialog框具有对父JFrame的引用)。 两个问题:1)是否有更好的方法将值从

  • 问题内容: 我有一个带有Glasspane的JFrame(未装饰)。此框架打开一个JDialog(也未装饰,也具有glassPane)并隐藏自身(setVisible(false))。Glasspanes使用.setGlassPane()设置。将以框架作为所有者打开对话框。 GlassPane扩展了JPanel并实现了AWTEventListener。我使用它来调整“框架”和“对话框”的大小,因此

  • 你好,我正在制作一个简单的桌面应用程序,我正在设计用户界面。我正在使用NetBeans快速设计它。我确实看了很多网站和博客来寻找答案,但是找不到正确的答案。我是UI设计新手。您的答复/建议将不胜感激。 问题是: 我在应用程序中有一个JFrame。这个Jframe有几个JPanel,当用户登录应用程序时,这些JPanel被设置为可见/不可见状态。其中两个面板默认设置为不可见状态(我使用了将它们设置为

  • 特性: 可修改CSS来统一定制UI; 通过参数设置标题,高度,宽度,窗口显示的HTML内容; 一个页面同时只能显示一个窗口; 窗口显示需要指定一个页面上的对象做为窗口显示做置定位,这样窗口会出现在哪个东西的下面,就像下拉列表一样. 不能拖动(我们不需要这样的功能); 可以点击窗口之外的任意区域来关闭窗口,或是点右上角的关闭按钮. 演示地址: http://huacnlee.github.com/jdialog/

  • 主要内容:1 Java JDialog的介绍,2 Java JDialog的声明,3 Java JDialog的构造方法,4 Java JDialog的案例1 Java JDialog的介绍 JDialog控件表示一个带有边框和标题的顶级窗口,用于从用户那里获取某种形式的输入。它继承了Dialog类。 与JFrame不同,它没有最大化和最小化按钮。 2 Java JDialog的声明 我们来看一下javax.swing.JDialog类的声明。 3 Java JDialog的构造方法 方法 描述