【问题标题】:Why setVisible doesn't work?为什么 setVisible 不起作用?
【发布时间】:2012-02-18 20:03:10
【问题描述】:

我有一个带有边框布局的摆动 GUI。在NORTH 我添加了一些组件。 我的带有 GIF 图标的标签组件是不可见的lblBusy.setVisible(false); 稍后一个按钮使其可见,如下所示。为什么不显示?

btnDownload.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent e) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    lblBusy.setVisible(true);
                    btnCancel.setEnabled(true);
                }
            });

            download = new Download(txtSource.getText(), new File(txtDestination.getText()), textAreaStatus);
            download.start();
            lblBusy.setVisible(false);
        }
    });

【问题讨论】:

  • 如需尽快获得更好的帮助,请发帖SSCCE。
  • 您是如何在NORTH 区域添加组件的?如果您逐个添加它们,则只有最后一个可用,所以您的标签可能没有真正添加到您的面板中?
  • ** 像这样:** `constraints.setGxGyGwGhWxWyFillAnchor(4, 0, 1, 1, 1.0, 0.0, TGridBagConstraints.HORIZONTAL, TGridBagConstraints.EAST); gridbaglayout.setConstraints(lblBusy, 约束); panelStatus.add(lblBusy);`

标签: java swing gif layout-manager border-layout


【解决方案1】:

1) 这是与EventDispatchThread 相关的问题,EDT 非常保证对 GUI 的所有更改都会在某一刻完成

2) 您从JButton 调用了ActionPerformed,并且在所有事件结束之前,您的GUI 应该被冻结或不负责任,在您的情况下JButton 和JLabel 也是如此

3) 最好将阅读 File 内容重定向到背景任务,例如SwingWorker 或 Runnable#Thread 然后 JButton 和 JLabel 将被更改,GUI 将在后台任务期间负责鼠标或键盘

或

4) 肮脏的 hack 拆分为两个分开的 Action,被 javax.swing.Timer 延迟,但在这种情况下,直到所有事件结束,您的 GUI 将被冻结或不负责任

【讨论】:

  • +1 获取信息。如果我在第 3 点没有记错(JButton 和 JLabel 将被更改并且 GUI 将在此期间),我想您的意思是编写 GUI 将正在执行而不是 GUI 将在此期间执行。问候
【解决方案2】:

很可能是因为 GUI 是在标签不可见的时候打包的,所以没有分配空间来显示它。如需更明确的信息,请发布 SSCCE。

【讨论】:

    【解决方案3】:

    在我看来,您在 mouseClicked() 方法中编写了 lblBusy.setVisible(true); 和之后的 lblBusy.setVisible(false);。既然您想在单击按钮时使其可见,您不是只使用lblBusy.setVisible(true);,而不是同时使用两者。

    不过,您可以在下载类结束时调用lblBusy.setVisible(false);,一旦它完成了它所做的事情。

    问候

    【讨论】:

      猜你喜欢
      • 2015-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-04
      • 1970-01-01
      • 1970-01-01
      • 2017-11-03
      相关资源
      最近更新 更多