【问题标题】:How to transfer message between multiple JPanels?如何在多个 JPanel 之间传输消息?
【发布时间】:2012-02-09 11:32:27
【问题描述】:

我有一个包含三个 JPanel 的 JFrame。第一个 JPanel 包含一个 JTextField 和一个 JButton。一旦按下 JButton,第二个 JPanel 上的 JLabel 就可以显示来自 JTextField 的文本输入。然后,第三个 JPanel 将根据第二个 JPanel 的 JLabel 更改其背景。

我的问题是: 如何在第一个 JPanel 中访问 JTextField 的内容,然后传递给另外两个 JPanel?

【问题讨论】:

  • 使用适当范围的变量,也许吧。

标签: java swing user-interface


【解决方案1】:

我认为实现您的目标的最简洁的方法是在收到来自经典 Observer/Observable 模式启用的更改的通知后访问字段文本的 getter。您可能在此处了解有关此模式的详细信息。 http://en.wikipedia.org/wiki/Observer_pattern 我的 2 件 杰罗姆

【讨论】:

    【解决方案2】:

    你可以创建

    请仔细阅读@Hovercraft Full Of Eels的所有cmets到这两个选项

    【讨论】:

      【解决方案3】:

      所以你有三个面板:

      JPanel panel1;
      JTextField textFieldOnFirstPanel;
      JButton buttonOnFirstPanel;
      JLabel labelOnSecondPanel;
      JPanel panel2;
      JPanel panel3;
      

      保留对所有这三个面板和主对象中所有组件的引用,这可能是您的 JFrame 对象本身。 根据事件,相应地更新这些组件。

      【讨论】:

        【解决方案4】:

        您将首先将第一个文本字段中的数据存储在一个变量中。您可以在按下按钮时在actionPerformed 方法中执行此操作。

        在此之后,您可以使用setText 函数来更改您的 JLabel 的文本。

        最后通过调用它的setBackground 方法来更改JPanel 颜色。

        String text = textField.getText();
        label.setText(text);
        myJPanel.setBackground(Color.white);
        

        【讨论】:

          猜你喜欢
          • 2015-05-19
          • 2023-03-28
          • 1970-01-01
          • 2021-06-18
          • 2021-12-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多